我想在我正在處理的幾個URL中的URL-escape(百分比編碼)非ascii字符。我正在使用從這些URL加載資源(如圖像和聲音剪輯)的Flash應用程序。由於文件名可以包含非ASCII字符,像這樣: 日本語.jpg
我用UTF-8編碼的字符,然後%的轉義unicode的字節轉義,得到如下:URL轉義爲Internet Explorer的中文/日文Unicode字符
%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
當我在除Internet Explorer以外的任何瀏覽器中運行應用程序時,這些文件名工作正常 - 我嘗試過Firefox,Safari和Chrome。但是,當我啓動IE中的應用程序(試用過6,8),並嘗試加載聲音片段,我得到: Error #2044: Unhandled ioError
和URL已被破壞的東西,如:
æ¥æ¬èª.jpg
任何想法如何解決這個問題?這只是用本地文件系統URL測試驅動Flash應用程序。 我也注意到,Internet Explorer未能夠找到一個文件如: file:///C:/%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
,雖然鉻/ Firefox會對其進行解碼和負載只是罰款與路徑
C:\日本語.jpg
文件編輯
我想我的問題是一樣的人在下面的ActionScript代碼片斷遇到:
import flash.display.Loader;
import flash.net.URLRequest;
...
var ldr:Loader;
var req:URLRequest = new URLRequest("日本語.jpg");
ldr = new Loader();
ldr.load(req);
使用字符串日本語.jpg
將在IE中工作,而使用字符串%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg
可在其他瀏覽器中使用。我需要的是一種可在所有瀏覽器中工作的單一表單。我嘗試了%u
編碼,並將http請求標頭設置爲Content-Type: text/html; charset=utf-8
,但百分比轉義或非轉義形式都沒有運氣。
Windows使用UTF-16作爲文件名。所以試試'%65%E5%67%2C%8A%9E'。 – Gumbo 2009-11-25 13:58:28
沒有使用UTF-16名稱的骰子,IE仍然找不到它。 – Bear 2009-11-25 20:40:34
相關:http://stackoverflow.com/questions/75980/best-practice-escape-or-encodeuri-encodeuricomponent – cregox 2011-07-04 22:42:24