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

标签 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 系统编码,但没有任何变化。

最佳答案

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

关于java - 读取Windows环境变量(编码/字符集问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136338/

相关文章:

java - Java中不同维度的二维数组相乘时出现问题

java - 模拟 RestTemplate API 调用

java - 安卓获取序列号

java - 序列化:将对象作为 URL 参数传递并提取值

java - 在 onSizeCanged() 中初始化对象时出现 NPE

java - 使用startActivityForResult

java - Java 8 迁移后性能急剧下降(Google App Engine)

java - Android中的Sqlite : DataBaseObjectNotClosedException

java - 如何在 optaplanner 中同时传递 TimeMatrix 和 DistanceMatrix

java - 在 hadoop : Type Mismatch 中链接作业