【发布时间】:2013-08-01 09:43:18
【问题描述】:
我从包含 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">)
【问题讨论】:
-
“它坏了”是什么意思?会发生什么?
-
您的编码已损坏;
%8eena%20mini%3f%8代表什么?它无效..encodeURIComponent("Žeena mini?") === "%C5%BDeena%20mini%3F"可以很好地解码 -
decodeURI((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1])
标签: javascript url character-encoding get