我正在编写一个 Netbeans java 程序来处理参数中的中文字符。我能够在编码中使用 unicode 代码和汉字,并且它们可以正确编译并显示在控制台上。但是,当我通过项目属性运行参数传递汉字时,它们都变成了??????。我已经将项目编码设置为UTF-8VM 选项-Dfile.encoding=UTF-8。这是我的编码,请帮忙。
public static void main(String[] args) {\n String test = "\\u5973\\u58eb";\n System.out.println(test); //works\n String test2 = "\xe5\xa5\xb3\xe5\xa3\xab2";\n System.out.println(test2); //works\n System.out.println(args[0]); //copy&paste test2 to argument, not works, showing ??\n}\nRun Code Online (Sandbox Code Playgroud)\n注意:我使用 jdk 1.8.0_202、Ant v1.10.4、Windows 10、Netbeans 10,用于 Netbeans 输出和 termianl 的字体是等宽14,项目是使用 Netbeans“java 应用程序”创建的。在 Netbeans 中或 Windows 命令提示符 chcp 65001 上运行时会出现问题-Dfile.encoding=UTF-8.
注意:根据 skomisa 的建议,我进一步测试了 Windows“使用 unicode utf8 进行全球语言支持”检查。我也不再使用 Netbeans,而是使用该 jar 通过 chcp 65001 在 Windows cmd 上运行。
\nD:\\.......>java …Run Code Online (Sandbox Code Playgroud)