我對JavaScript中的URL中的特殊/擴展UTF-8字符編碼有疑問。同樣的問題適用於許多字符,如已註冊的R-圓,但我的例子使用一個變音符:JavaScript中的字符/ URI編碼不同步?
U =%C3%BC以UTF-8
(從http://www.utf8-chartable.de/底部四行)如果url包含以UTF-8(ü=%C3%BC)表示的變音符號,並且我通過encodeURIComponent運行它,%s正在編碼,字符串現在看起來像「%25C3%25BC」,並且它被我的系統正確處理。這很好。
url =「http://foo.com/bar.html?%C3%BC」
url = encodeURIComponent(url);
// URL現在表示爲 「HTTP%3A%2F%2Ffoo.com%2Fbar.html%3F%25C3%25BC」
然而,壞:如果預編碼串具有的未編碼的字符,實際的變音,編碼後看起來像 「%C3%BC」 和失敗,因爲,我相信,在%S應進行編碼,太:
URL = 「http://foo.com/bar.html?ü」
URL = encodeURIComponent方法(URL) ;
// URL現在表示爲 「HTTP%3A%2F%2Ffoo.com%2Fbar.html%3F%C3%BC」
我覺得它失敗,因爲它是不太徹底,比URL的其餘部分編碼。
因此,除了一般建議或對問題的回答,我不知道要問什麼,我想我想知道的是如何獲得原始變音符號(以及所有其他特殊字符)以完全編碼。那是不正確的?
感謝您的幫助! Nate
你是雙編碼。你使用的是什麼樣的系統? – jpsimons 2011-03-31 01:33:51