在使用JPowershell遇到中文乱码该怎么排查?
记录一下踩过的坑,需要用到shell执行某些指令,同时要支持Mac和windows,当然JPowershell是windows执行命令的选择;由于在Mac下开发,部署环境是windows,所以遇到了这样的问题。
1、首先排查命令是否能正常执行,到cmd中执行命令,确认命令无误。
2、如果有中文路径,就要考虑编码问题,检查jvm的字符集:
String defaultCharsetName=Charset.defaultCharset().displayName();
System.out.println("defaultCharsetName:"+defaultCharsetName);
我的在windows下是GBK, 但是我的开发环境是UTF-8, 在UTF-8环境下是一切正常,所以我把windows下的JVM字符集改成UTF-8,一切正常。
只需要加上启动参数即可 -Dfile.encoding=UTF8
windows:
set "JAVA_OPTS=-Dfile.encoding=UTF8"
mac:
JAVA_OPTS="-Dfile.encoding=UTF8"
公众号 AlienTalk