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

在eclipse中运行带有中文参数的java程序,java,eclipse,Java,Eclipse,我输入了一些参数,比如-D你好=你好, 并调用单个类 java文件如下所示: public class Test { public static void main(String[] args) throws Exception { for(String name :args){ System.out.println(name); } } } 打印结果: -D??=?? 如何解决此问题?看起来不可能有一个干净的方法: 不幸的是,您不能可靠地将非ASCII字

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

java文件如下所示:

public class Test {

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

打印结果:

-D??=??

如何解决此问题?

看起来不可能有一个干净的方法:

不幸的是,您不能可靠地将非ASCII字符用于 使用WindowsC运行时stdlib的命令行应用程序,如Java (实际上,几乎所有非Windows特定的脚本语言都是如此)

这是因为他们使用 默认情况下,特定于语言环境的代码页,与 其他使用UTF-8的现代操作系统

同时,您可以将终端的代码页更改为其他内容 使用chcp命令,支持chcp下的UTF-8编码 65001在一些方面被破坏,很可能导致应用程序的致命失败

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

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


看看这两个链接是否有用:你尝试过这个吗?[如何将[简体]汉字打印到Eclipse控制台?]()或者控制台可以显示正确的汉字,并且项目、java文件、调试配置中的常见编码都设置为UTF-8,但奇怪的是,为什么在程序参数视图中设置汉字,主方法获取参数无法显示正确。