2009-11-20 33 views
2

尝试以下方法打开一个阿拉伯语网址:Runtime.getRuntime().exec()与Windows中的非ASCII字符串?

String cmd = "cmd.exe /C start \"Open file\" \"http://ar.wikipedia.org/wiki/موسوعة\""; 
    Runtime.getRuntime().exec(cmd); 

不幸的是,被打开的URL http://ar.wikipedia.org/wiki/??????

为什么这是任何想法或怎样,我可以防止这种情况?


之前你问我为什么不使用java.awt.Desktop.getDesktop()的open(),这是因为这种Sun错误的:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6457572

回答

3

如果你想要这个特殊的例子工作 - 即打开一个UTF-8的URL,试试这个:


String params = URLEncoder.encode("موسوعة", "utf-8"); 
String cmd = "cmd.exe /C start \"Open file\" \"http://ar.wikipedia.org/wiki/" + params + "\""; 
Runtime.getRuntime().exec(cmd); 

+0

完美,这就是缺少的。谢谢。 – Epaga 2009-11-20 14:34:33