2

我从包含 utf 字符(如 Ž、ć 等)的服务器单词中得到......我输入了 url 参数,我的 url 看起来像?id=229&name=%8eena%20mini%3f

我正在使用 js 函数从 url 获取参数

function getURLParameter(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

它解析第一个 id 参数,但在第二个(当我在 url 中编码之前有 utf 时)它会中断。

var id = getURLParameter('id');//works
var id = getURLParameter('name');//breaks when have utf

当它具有来自 url 的 utf 时如何获取该参数?(在我有的页面上<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

4

1 回答 1

1

无论编码Žena%8eena不使用 UTF-8 编码,它都使用 Windows-1252 编码,因为在该字符集中Ž表示。8e

在 UTF-8 中,Ž表示为,因此如果表单具有正确的编码c5 bd,您应该期望您的 URL 包含。%c5%bd

看起来您需要<meta charset="utf-8">上一页,或者至少accept-charset="utf-8"需要您提交的表单上的属性。

另请参阅:如果页面已经采用 UTF-8,将 accept-charset="UTF-8" 添加到 HTML 表单有什么好处吗?

于 2013-08-01T09:59:04.417 回答