firefox如何编码地址栏中的url

时间:2011-09-20 14:09:37

标签: javascript firefox encoding

当我使用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是如何做的以及如何解码参数?

2 个答案:

答案 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");
"中文"

例如:http://google.com?q=中文

答案 1 :(得分:0)

它使用的是标准网址编码,您需要确保使用正确的文档类型来显示这些字符,否则会得到令人不满意的结果。