gpt4 book ai didi

internet-explorer - Internet Explorer 的 URL 转义中文/日文 Unicode 字符

转载 作者:行者123 更新时间:2023-12-01 22:59:08 26 4
gpt4 key购买 nike

我正在尝试对我正在处理的几个 URL 中的非 ASCII 字符进行 URL 转义(百分比编码)。我正在使用一个 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)并尝试加载声音剪辑时,我得到:错误 #2044:未处理的 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);

使用字符串 日本​​语.jpg 将在 IE 中运行,而使用字符串 %E6%97%A5%E6%9C%AC%E8%AA%9E.jpg 适用于其他浏览器。我需要的是一个可以在所有浏览器中使用的单一表单。我已经尝试过 %u 编码并将http请求 header 设置为 Content-Type: text/html; charset=utf-8 无论是百分比转义还是非转义形式都没有运气。

最佳答案

抱歉,没有解决方案,但也许至少可以提供一些有关此处可能发生的情况的更多信息。 (可能您已经弄清楚了这么多,但也许它会帮助其他读者找到解决方案。)“官方”url 编码规范似乎为如何解码转义的 url(如您生成的 URL)敞开了大门-- 转义实体是用来表示 UTF-8 字符(如 Firefox 等解释它们)还是 ASCII 字符(如 IE 解释它们)?我不知道有什么方法可以强制执行预期的解码策略。

只是一个问题:如果你根本不转义它们,而是将 unicode 留在 url 中,会发生什么糟糕的事情?虽然我对此没有太多经验,但我想我记得在某处读过,需要在 url 中转义 unicode 的日子已经过去了。这可能是错误的...

关于internet-explorer - Internet Explorer 的 URL 转义中文/日文 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1794637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com