当我调用javascript URL函数时,我在Internet Explorer 11(IE 11)中收到错误。错误是url参数值。参数值是unicode但结果是这样的?????不是unicode。我的代码如下。
<?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;
//window.location.assign("index.php?value="+val)
window.location.href="index.php?value="+val;
}
</script>
</head>
<body>
<?php
if(!empty($_GET['value'])){
echo $value=$_GET['value'];
}
?>
<select style="width:180px;" onchange="test(this.value)">
<option value="">select</option>
<option value="நன்றி">நன்றி</option>
</select>
</body>
</html>
答案 0 :(得分:2)
window.location.href = “的index.php值=?” + VAL;
URI不能包含非ASCII字符。 (IRI可以,但是当直接与它们一起呈现时,浏览器会做什么变化很明显。)
当您将一些文本放入URI查询参数值时,需要对其进行URI编码。这不仅仅是因为Unicode - 如果你不这样做,那么你的URI将会破坏URI中特殊的其他值字符,例如&
或%
。
location.href = 'index.php?value=' + encodeURIComponent(val);
旁白:
选择自动导航的框,即“跳转列表”,具有严重的可用性/可访问性缺陷,几乎总是更好地避免。请考虑使用真实链接的弹出式导航列表。
echo $value=$_GET['value'];
调试行是跨站点脚本(XSS)安全漏洞。永远记得htmlspecialchars()
您输出的所有文字都是HTML。
答案 1 :(得分:0)