Runtime.getRuntime().exec()执行命令时中文乱码的解决办法
当在Windows下执行命令时,例如:
try {
Process p = Runtime.getRuntime().exec("ping 127.0.0.1");
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String buff = null;
while ((buff = br.readLine()) != null) {
System.out.println(buff);
}
} catch (IOException e) {
e.printStackTrace();
}
不显示中文,而是显示乱码。是因为从子进程获取输入流时没有设置编码,应在获取 InputStreamReader 流时设置 GBK 编码。可以将代码第三行改为:
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream(), "GBK"));
这样就能正常显示中文了。

浙公网安备 33010602011771号