在eclipse中运行带有中文参数的java程序

时间:2016-04-27 06:58:32

标签: java eclipse

我输入一些参数,比如-D你好=你好,并调用一个类,

java文件如下:

public class Test {

public static void main(String[] args) throws Exception {
    for(String name :args){
        System.out.println(name);
    }
}

}

打印结果:

-D??=??

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

看起来像一个干净的方式是不可能的: Passing command line unicode argument to Java code

  

不幸的是,您无法可靠地使用非ASCII字符   使用Windows C运行时的stdlib的命令行应用程序,如Java   (以及几乎所有非Windows特定的脚本语言)。

     

这是因为他们使用a读取输入和输出   特定于语言环境的代码页,默认情况下,它不是UTF,不像   所有其他使用UTF-8的现代操作系统。

     

虽然您可以将终端的代码页更改为其他内容   使用chcp命令,支持chcp下的UTF-8编码   65001在某些方面被打破,可能导致应用程序死亡。

     

如果您只需要日语,您可以切换到代码页932(类似   通过设置您的语言环境('非Unicode的语言)到Shift-JIS   在区域设置中的应用程序)到日本。这仍然会失败   但是对于不在该代码页中的字符。

     

如果需要通过命令行获取非ASCII字符   在Windows上可靠地,您需要调用Win32 API函数   GetCommandLineW直接避免编码到系统代码页   层。可能你想用JNA做到这一点。