某些版本的互联网探索(即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);
}