IE 11 中 unicode 的 Javascript URL 错误

标签 javascript php unicode

当我调用 javascript URL 函数时,我在 Internet Explorer 11 (IE 11) 中遇到错误。错误是url参数值。参数值是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>

最佳答案

window.location.href="index.php?value="+val;

URI 不能包含非 ASCII 字符。 (IRI 可以,但是浏览器在直接呈现它们时所做的操作是明显可变的。)

当您将一些文本放入 URI 查询参数值中时,您需要对其进行 URI 编码。这不仅仅是因为 Unicode,如果您不这样做,那么您的 URI 将因 URI 中的其他特殊值字符而中断,例如 &%

location.href = 'index.php?value=' + encodeURIComponent(val);

旁白:

  1. 自动导航的选择框(又名“跳转列表”)具有严重的可用性/可访问性缺陷,并且几乎总是最好避免。考虑使用真实链接的弹出导航列表。

  2. echo $value=$_GET['value']; 调试行是一个跨站点脚本 (XSS) 安全漏洞。始终记住 htmlspecialchars() 所有输出到 HTML 中的文本。

关于IE 11 中 unicode 的 Javascript URL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433796/

相关文章:

PHP-如何对具有重复元素值的数组元素求和

sql-server - SQL Server 2005 和 UTF8

unicode - LoadStringFromFile 和 StringChangeEx 来自 Unicode Inno Setup(Ansi 文件)

javascript - 为什么按钮点击事件在页面加载时自动触发 - React.js

javascript - 如何在 Javascript 中配置和查找枚举

用于 Eclipse PDT 的 PHP 5.4 解释器

linux - 在 shell 中打印非 ascii/unicode 字符

javascript - Safari 上的 Font-Awesome onclick 问题,适用于 Chrome 和 Firefox

javascript - XSS:它仍然是一个问题吗?

php - '第 1 行 MYSQL 错误