如何使用eclipse传递unicode VM参数?

时间:2013-02-03 18:51:11

标签: java eclipse unicode

如果我从Eclipse IDE启动进程,我无法读取作为VM参数传递的unicode字符串。

例如:

ArrayList<String> commands = new ArrayList<>();
commands.add("java");
commands.add("-classpath");
commands.add("bin");
commands.add("-Dprop=ÁÉÍÓÚ");
commands.add("test.ReadProp");
ProcessBuilder pb = new ProcessBuilder(commands);
Process process = pb.start();
BufferedReader in;
String line;
in = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = in.readLine()) != null)
    System.out.println(line);

使用 test.ReadProp

String prop = System.getProperty("prop");
System.out.println("prop: " + prop);

结果是

prop: ??????????

唯一的解决方案似乎是以这种方式强制环境变量LANG

pb.environment().put("LANG", "it_IT.UTF-8");

有更好的解决方案吗? 更便携?

于20:30更新

另一种解决方案似乎是将环境LANG=it_IT.UTF-8添加到启动Eclipse进程的BASH脚本中。但这并不是我可以在每台计算机上控制的东西。

2 个答案:

答案 0 :(得分:0)

-Dfile.encoding=UTF8传递给JVM。

答案 1 :(得分:0)

我在Windows 10中使用Eclipse版本:2019-09 R(4.13.0),对我有用的是:

控制面板->区域设置->管理标签->更改系统区域设置...

并设置我要使用的特定语言(在我的情况下是希腊语)

激活Beta功能会使事情搞砸,所以我的设置是关闭