记一次Tomcat中文乱码问题
问题描述
项目是war包,部署在tomcat中,在项目中会生成xml文件。
当把war包部署在本地的tomcat中,生成的xml文件中的汉字正常
当把war包部署linux的tomcat中,生成的xml文件中的汉字乱码
原因分析:
添加打印日志代码:
log.info("code--{}",System.getProperty("file.encoding"));
本地输出结果:
code--UTF-8
服务器输出结果:
code--ANSI_X3.4-1968
原来linux中的tomcat编码使用ANSI_X3.4-1968,即使项目当时打包时使用UTF-8编码,但是实际编码还是使用ANSI_X3.4-1968,所以在服务器上生成的xml文件用ANSI_X3.4-1968编码,导致中文乱码
解决方案:
tomcat配置启动参数:-Dfile.encoding=UTF-8
windows
修改catalina.bat
tomcat7以下:
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的后面加上 -Dfile.encoding="UTF-8"
tomcat7以上:
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8"
Linux
修改catalina.sh
JAVA_OPTS="-Dfile.encoding=UTF-8"
修改完重启

浙公网安备 33010602011771号