阅读Windows环境变量(编码/字符集问题)

时间:2011-11-15 12:28:27

标签: java

我想要做的是阅读Windows环境变量%APPDATA%。我对变形金刚有一些严重的问题,例如如果APDATA设置为"ÄÄÄ",我会得到"'''"

这是我的代码:

final Process p = Runtime.getRuntime().exec("cmd.exe /C echo %APPDATA%");
final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String buffer;
if((buffer = br.readLine()) != null) {
    return buffer;
}

如果我打印出来

String encoding_system = System.getProperty("file.encoding");

我得到了Cp1252。我试图告诉InputStreamReader系统编码,但没有任何改变。

1 个答案:

答案 0 :(得分:1)

这是尝试获取环境变量值的一种脆弱方式。你最好使用System.getEnv()。这将返回一个Map<String, String>实例,将环境变量名称链接到它们的值。