Windows 中带有非 ASCII 字符串的 Runtime.getRuntime().exec() ?

发布于 2024-08-11 21:55:31 字数 518 浏览 6 评论 0原文

尝试以下方法打开阿拉伯语 URL:

  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 bug: https://bugs.java.com/bugdatabase/view_bug?bug_id=6457572

Trying the following method to open an Arabic URL:

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

Unfortunately, the URL being opened is http://ar.wikipedia.org/wiki/??????

Any thoughts on why this is or how I could prevent this?


Before you ask why I don't use java.awt.Desktop.getDesktop().open(), it's because of this Sun bug: https://bugs.java.com/bugdatabase/view_bug?bug_id=6457572

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清眉祭 2024-08-18 21:55:31

如果您希望这个特定示例起作用 - 即打开一个包含 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);

If you want this particular example to work - i.e. open an URL with UTF-8 in it, try this:


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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文