Runtime.getRuntime exec (). () Con una cadena no ASCII en Windows?
-
21-09-2019 - |
Pregunta
El intentar el siguiente método para abrir un URL en árabe:
String cmd = "cmd.exe /C start \"Open file\" \"http://ar.wikipedia.org/wiki/موسوعة\"";
Runtime.getRuntime().exec( cmd );
Por desgracia, la URL se abra se http://ar.wikipedia.org/wiki/??????
¿Alguna idea de por qué esto es o cómo podría evitar esto?
.
Antes de preguntar por qué no uso java.awt.Desktop.getDesktop () open (), que es debido a este error Sun: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6457572
Solución
Si desea que este ejemplo particular al trabajo - es decir, abrir una URL con UTF-8 en ella, intente lo siguiente:
String params = URLEncoder.encode("موسوعة", "utf-8");
String cmd = "cmd.exe /C start \"Open file\" \"http://ar.wikipedia.org/wiki/" + params + "\"";
Runtime.getRuntime().exec(cmd);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow