问题:
最近在部署项目的时候,工作流出现了部分中文乱码,经过排查对比,发现是windows服务器(中文模式)的默认编码是GBK,导致运行时,出现了部分乱码。
由于是部署在Windows环境下,Windows默认编码GBK,这就导致了jvm运行时编码不一致的问题,修改也很容易。
解决办法:
Linux环境下如果使用的UTF-8编码,可以不用修改,因为Linux默认为UTF-8
war包部署在Tomcat
修改jvm编码
Linux环境
在catalina.sh配置
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"
由于Windows环境下默认的编码格式为GBK,所以要修改Tomcat运行时编码格式。
Windows环境
在catalina.bat配置
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
图中红色框内容为新增
如果是通过“windows服务”启动
则需要配置service.bat
图中红色框内容为新增
如果是jar包部署,只需要在启动命令加入jvm参数即可。
jar包部署
启动命令加入jvm参数
java -Dfile.encoding=UTF-8 -jar xxx.jar