2011-09-20 51 views
0

當我使用firefox的時候,我發現它會在地址欄中編碼中文字符,這使得解碼很難。firefox如何編碼地址欄中的url

Exemaple:

在js代碼,我已編碼的網址:在地址欄

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

它是一個已知的Firefox錯誤: https://bugzilla.mozilla.org/show_bug.cgi?id=552273 – c69

+0

我看到它,以任何方式解決它?因爲我們在firefox 3.6中遇到了這個問題,雖然在firefox 5 +中沒有發生,但是我們無法讓我們的訪問者更新到6. – user954921

+0

@ c69:我不同意。這個問題中描述的行爲似乎並不存在。 –

回答

0

它使用標準的url編碼,你需要確保你有正確的doctype來顯示這些字符,否則你會得到不滿意的結果。

3

Firefox對我來說並不是那樣。當我輸入時,它不會在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=中文

+0

你提到的功能是正確的解碼Firefox的URL –