Runtime.getRuntime().exec 命令里有中文,但是执行是乱码的问题
String command="cd /usr/bin; ./cli map modify_hmap --mname hmaptarget9 --comment \"备注\"";
String[] cmds = { "/bin/sh", "-c", command };
String[] envp = {"LANG=UTF-8"};
Runtime.getRuntime().exec(cmds, envp, null);
以上代码在linux环境下执行,然后查看执行结果发现调用linu的命令时,中文“备注”传进去的是乱码。
我手动输入cd /usr/bin; ./cli map modify_hmap --mname hmaptarget9 --comment "备注"
可以正确执行。
注:
我的JAVA文件编码格式是UTF-8
linux 环境的编码为:LANG="en_US.UTF-8"
我以为是envp 设置的有问题,我就将envp 改为{"LANG=UTF-8"}和{"LANG=en_US.UTF-8"}都不行。
求大牛解决!