我遇到了一個奇怪的問題與IE瀏覽器的URL,如果我在URL中傳遞場景它不起作用,它似乎完美適用於其他瀏覽器。如何使用Javascript中的重音字符編碼URL?
IE中的URL出來作爲:
.../search.aspx關鍵字= SC%C3%83%C2%a9nario
在火狐URL出來作爲:
.../search.aspx?keyword = sc%C3%A9nario
在IE瀏覽器的URL中斷和Firefox工作正常,我必須做URL解碼來照顧這在IE中?
我遇到了一個奇怪的問題與IE瀏覽器的URL,如果我在URL中傳遞場景它不起作用,它似乎完美適用於其他瀏覽器。如何使用Javascript中的重音字符編碼URL?
IE中的URL出來作爲:
.../search.aspx關鍵字= SC%C3%83%C2%a9nario
在火狐URL出來作爲:
.../search.aspx?keyword = sc%C3%A9nario
在IE瀏覽器的URL中斷和Firefox工作正常,我必須做URL解碼來照顧這在IE中?
雖然你沒有說你如何「通過」字符串,我可以告訴你發生了什麼事。
字符é
具有碼點E9。在UTF-8中,它被編碼爲兩個字節:C3 A9。所以,在URL中顯示「方案」的正確途徑是
sc%C3%A9nario
現在,如果你把這個字符串,看着每一個單個字節,並假定他們是字符,並且做了一個UTF-8編碼,會發生什麼第二次?會發生什麼是
這與您在IE中看到的完全對應。
現在我不能肯定地說這是怎麼發生的,因爲問題沒有足夠的背景,但是很清楚的是,字符串「scénario」被編碼成UTF-8字節字符串,然後它再次編碼爲,這是基於第一種編碼在Windows-1252或Latin-1編碼中產生字符串的奇怪假設。
你需要看看你的字符串是如何「編碼兩次」。
如何在URL中傳遞它? – Gumbo 2011-03-14 15:40:53