2009-11-20 14 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