2016-04-10 6 views
0

インターネットのいくつかのバージョンは、このような誤った値を与えます(つまり11など)?ユニコード変数。 Internet Explorer以外のコードは正常に動作します。私はこのファイルエンコーディングをUTF-8として保存しました。誰でも私を助けてくれますか?ユニコードのPHP変数エラー

<?php 
header('Content-Type: text/html; charset=utf-8'); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript"> 
function test(val){ 
var val; 
//alert(val); 
url=window.location.href="test.php?value="+val; 
//alert(url); 
} 
</script> 
</head> 
<body> 
<?php 
$value=""; 
if(!empty($_GET['value'])){ 
    echo $value=$_GET['value'];//this variable is the problem; 
    } 
?> 
<select style="width:180px;" onchange="test(this.value)"> 
<option value="">select</option> 
<option value="நன்றி">நன்றி</option> 
</select>     
</body> 
</html> 

答えて

4

URLクエリ文字列に完全に未処理の値を追加しているので、それはむしろあなたのせいだと思います。 (偶然それ他のブラウザでは、どのようなをしたいあなたは、必ずしもそれを意味するものではありませんがでください。)

使用encodeURIComponentそれを追加する前の値に。


編集:

function test(val){ 
    //var val; <- removed, because makes no sense - val gets passed in as parameter already 
    window.location.href = "test.php?value=" + encodeURIComponent(val); 
} 
+0

うん、あなたは、私が実際にそれを通じ思わなかった、適切なソリューションです:P – ForceMagic

+0

は、いくつかのより多くを説明してください。どのようなコードを追加する必要があります。 –

+0

私の編集をご覧ください。 – CBroe

関連する問題