unicode中的PHP变量错误


PHP variable error in unicode

某些版本的互联网探索(即11和其他版本)给出了错误的值,如下所示?????????用于unicode变量。除了internetexplorer,代码运行良好。我已将此文件编码保存为UTF-8。有谁能帮我吗。

<?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>

我认为这是你的错,因为你把值附加到了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);
}