2013-01-09 37 views
9

我正在處理從URL顯示(使可讀)字符的要求。Internet Explorer不顯示來自URL的中文字符

  • 當我使用谷歌瀏覽器時,即使它們被編碼爲UTF-8,它也會顯示中文參數。

  • 當我使用Mozilla Firefox時,它顯示中文參數 - 即使它們被編碼爲UTF-8。

  • 當我使用Internet Explorer時,它顯示以UTF-8編碼的參數。

N.B.該URL編碼爲UTF-8;我知道,因爲我從他們三人複製網址並將其粘貼到記事本++他們三人顯示如下:

/%E6%89%93%E5%BC%80%E7%9B %AE%E5%BD%95 /%E7%9B%B8%E6%9C%BA /%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA /%E5% B0%8F%E5%9E%8B%E6%95%B0%E7%A0%81%E7%9B%B8%E6%9C%BA /的PowerShot-A480/p/1934793

莫非Mozilla Firefox和谷歌Chrome傢伙有這種改進,可以使編碼的字符串可讀,也許IE傢伙不支持?或者,有沒有什麼辦法可以用IE激活?

順便說一下...去查看>>編碼>> Unicode(UTF-8)負責頁面內部的文本,但對URL中的文本沒有任何影響。

任何幫助將不勝感激!

+0

「顯示URL中的字符」是什麼意思?你的意思是在地址欄中嗎? – chooban

+0

是的。當您傳遞參數並且您正在使用GET參數時可見(因此可讀)。那麼,我正在使用一個用中文發送參數的應用程序,這些參數應該是可讀的。 – user1532449

+0

您無法控制瀏覽器決定在其地址欄中顯示的內容。這聽起來像Chrome和Firefox簡單地解碼URL(將任何'%HH'序列轉換爲原始字節,然後假設轉換後的URL爲UTF-8 - 在所有網站上並非總是如此),然後將其解碼爲Unicode IE在沒有任何解碼的情況下按原樣顯示它。 –

回答

8

我寫了一篇關於Internet Explorer not displaying the decoded version of non-ASCII characters and using IRIs的博客文章來解決這個問題。

截至今天,我們有以下的情況:

  1. HTML5支持IRIs,即URIs使用Unicode字符支持
  2. HTTP不支持IRIs,但所有主要的瀏覽器需要轉換IRIs爲有效的護理(編碼)URIs來檢索指定的資源(頁面)。
  3. IE支持IRIs在錨標記的href屬性中,並正確顯示它們的地址欄,就像手動輸入網址時一樣(鍵盤;-))。
  4. 如果您選擇對IRI進行百分比編碼,從而使其成爲URI,則IE不會將該URI解碼爲IRI

所以,你可以嘗試以下方法:

  1. 使用UTF-8保存HTML文件。這允許你插入任何Unicode字符。
  2. 不是百分比編碼你的網址在你的HTML頁面的鏈接。只需使用如下鏈接:<a href="http://zh.wikipedia.org/wiki/亦思巴奚兵亂">亦思巴奚兵亂</a>

有關該主題的偉大文章也可以在W3C上找到:An Introduction to Multilingual Web Addresses

+0

好博客文章。 – codingoutloud

相關問題