4

如果我从 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 脚本中。但这不是我可以在每台计算机上控制的东西。

4

2 回答 2

1

传递-Dfile.encoding=UTF8给 JVM。

于 2013-02-03T18:53:02.710 回答
0

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

控制面板->区域设置->管理选项卡->更改系统区域设置...

并设置我想使用的特定语言(在我的例子中,它是希腊语)

激活 Beta 功能搞砸了,所以我的设置是关闭的

于 2020-02-26T05:47:43.160 回答