Estoy escribiendo un programa java de Netbeans para manejar caracteres chinos en argumentos. Puedo usar códigos Unicode y caracteres chinos en mi codificación y se compilan y muestran en la consola correctamente. Sin embargo, cuando paso los caracteres chinos a través de los argumentos de ejecución de las propiedades del proyecto, todos se convierten en ?????. Ya configuré la codificación de mi proyecto en UTF-8 y las opciones de VM -Dfile.encoding=UTF-8 . Aquí está mi codificación, por favor ayuda.
public static void main(String[] args) { String test = "\u5973\u58eb"; System.out.println(test); //works String test2 = "女士2"; System.out.println(test2); //works System.out.println(args[0]); //copy&paste test2 to argument, not works, showing ?? } NB: utilizo jdk 1.8.0_202, Ant v1.10.4, Windows 10, Netbeans 10, las fuentes utilizadas para la salida de Netbeans y termianl son monospaced14, el proyecto se crea utilizando la "aplicación java" de Netbeans. El problema ocurre cuando se ejecuta dentro de Netbeans o en el símbolo del sistema de Windows chcp 65001, ambos con -Dfile.encoding=UTF-8 .
NB: con el consejo de skomisa, pruebo más con Windows "usar unicode utf8 para compatibilidad con idiomas en todo el mundo" marcado. También me alejo de Netbeans pero uso el jar para ejecutar Windows cmd con chcp 65001.
D:\.......>java -cp dist/myjar.jar -Dfile.encoding=UTF8 java.mypackage.TestUTF8 女士女士女士2 女士 D:\.......>java -cp dist/myjar.jar java.mypackage.TestUTF8 女士?? ??2女士Entonces, con -Dfile.encoding=UTF8 (primera ejecución), la cadena constante en la codificación funciona mientras que los argumentos no. Sin -Dfile.encoding (segunda ejecución), las constantes en código no funcionan mientras funcionan los argumentos. Pero necesito ambos. Tengo una cadena constante china en mi programa, así como en los argumentos del programa. Alguien me puede decir que se puede hacer por favor.