当我使用firefox时,我发现它会在地址栏中编码中文字符,这使得解码变得困难。
Exemaple:
在js代码中,我编写了url:
location.href="http://xxx/query.html?type="+encodingURI('中文');
然后在地址栏中,firefox告诉我:
http://xxx/query.html?type=中文
但是,如果我在地址中输入“Enter”键,这意味着重新加载此页面,那么地址将更改为
http://xxx/query.html?type=%D6%D0%CE%C4
然后我无法解码“=%D6%D0%CE%C4”。因为它无法使用
进行解码decodeURI('%D6%D0%CE%C4');
实际上是encodeURI("中文")="%E4%B8%AD%E6%96%87"
我想知道firefox是如何做的以及如何解码参数?
答案 0 :(得分:4)
Firefox不会对我这样做。当我按Enter键时,它不会在URL中对这些字符进行编码。
顺便说一下,中文
的正确UTF-8编码是%E4%B8%AD%E6%96%87
。
encodeURIComponent("中文");
"%E4%B8%AD%E6%96%87"
decodeURIComponent("%E4%B8%AD%E6%96%87");
"中文"
答案 1 :(得分:0)
它使用的是标准网址编码,您需要确保使用正确的文档类型来显示这些字符,否则会得到令人不满意的结果。