Bea*_*ear 8 unicode url internet-explorer encode escaping
我正在尝试在我正在处理的几个URL中URL-escape(百分比编码)非ascii字符.我正在使用一个Flash应用程序来加载来自这些URL的图像和声音片段等资源.由于文件名可以包含非ascii字符,如下所示:
???.jpg
我通过对字符进行utf-8编码来转义它们,然后以百分比形式转义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,虽然Chrome/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);
Run Code Online (Sandbox Code Playgroud)
使用该字符串???.jpg将在IE中工作,而使用该字符串%E6%97%A5%E6%9C%AC%E8%AA%9E.jpg在其他浏览器中工作.我需要的是一个适用于所有浏览器的单一表单.我已经尝试过%u编码并将http请求标头设置为Content-Type: text/html; charset=utf-8在%转义或非转义形式中没有运气.
抱歉,没有解决方案,但也许至少有一些有关这里可能发生的情况的更多信息。(可能您已经弄清楚了这么多,但也许它会帮助其他读者找到解决方案。)“官方”url 编码规范似乎对如何解码转义的 url(如您生成的 URL)敞开了大门-- 转义实体是用来表示 UTF-8 字符(如 Firefox 等解释它们)还是 ASCII 字符(如 IE 解释它们)?我不知道有什么方法可以强制执行预期的解码策略。
只是一个问题:如果你根本不转义它们,而是将 unicode 留在 url 中,会发生什么坏事?虽然我对此没有太多经验,但我想我记得在某处读过,需要在 url 中转义 unicode 的日子已经过去了。可能是错的...
| 归档时间: |
|
| 查看次数: |
9101 次 |
| 最近记录: |