小编Bea*_*ear的帖子

URL为Internet Explorer转义中文/日文Unicode字符

我正在尝试在我正在处理的几个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在%转义或非转义形式中没有运气.

unicode url internet-explorer encode escaping

8
推荐指数
1
解决办法
9101
查看次数

Windows上的Java Runtime Exec在参数中使用Unicode失败

我想启动浏览器并使用Java的Runtime exec加载网页.确切的调用如下所示:

String[] explorer = {"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE", 
    "-noframemerging", 
    "C:\\ ... path containing unicode chars ... \\Main.html"};
Runtime.getRuntime().exec(explorer);
Run Code Online (Sandbox Code Playgroud)

在我的例子中,路径包含"\u65E5\u672C\u8A9E",字符日本语.

显然这是一个java bug:http: //bugs.sun.com/bugdatabase/view_bug.do?video_id = 4947220

我的问题是:是否有可行的解决方法可以单独使用Java完成?看来可以为此编写一个JNI库,但是如果可能的话我想避免使用它.我尝试将路径URI编码为ascii并将命令写入批处理文件,但没有成功.

windows unicode runtime.exec

6
推荐指数
1
解决办法
3918
查看次数