我發現在flash(至少10.x)和ie(7,8,9)中,如果我嘗試加載包含轉義的utf-8字符的圖像url(p%C3%83%C2% A5)即使我對它們進行雙重或三重編碼,字符在發出url請求之前也會被解碼。有沒有什麼辦法來防止這種情況,所以URL(帶有轉義)我想要的方式實際上是什麼要求?如何防止在Flash中解碼utf-8 url?
其導致的問題是我們給utf-8解碼url請求上的http狀態301給編碼的url,然後flash嘗試請求(但是也就是解碼它),並且因爲301 +即自動解碼。
編輯,添加代碼示例:
var url:URLRequest = new URLRequest('http://mydomain.com/p%C3%A5.jpg');
var loader:Loader = new Loader();
loader.load(url);
現在我想請求走了過來線http://mydomain.com/p%C3%A5.jpg(和它在其他瀏覽器一樣),但在IE它越過線http://mydomain.com/PA ¥的.jpg
編輯:我也試圖與%25%替換(雙編碼%)的(好)的建議,但沒有奏效,它只是造成這一請求走了過來線:
http://mydomain.com/p%25C3%25A5.jpg
這聽起來像是你在濫用urlencoding。發佈提出請求的Flash代碼 – 2011-05-16 17:49:09
好主意,添加代碼。 – Shizam 2011-05-16 18:28:09
IE不僅解碼URL,它很可能是錯誤地解碼它。它使用Windows默認編碼(ish),當它可能應該是UTF-8。這可能是因爲頁面本身未設置爲使用UTF-8。 – bzlm 2011-05-16 18:47:43