我从服务器单词中获得了包含Ž,ć等utf字符等等....
我输入了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">
)
答案 0 :(得分:1)
无论Žena
到%8eena
的编码是不是使用UTF-8编码,它都使用Windows-1252编码,因为Ž
表示为8e
在那个字符集中。
在UTF-8中,Ž
表示为c5 bd
,因此如果表单具有正确的编码,您应该希望您的网址包含%c5%bd
。
您在上一页上看起来需要<meta charset="utf-8">
,或者至少在您提交的表单上需要accept-charset="utf-8"
属性。