记一次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"

修改完重启

posted @ 2023-02-08 18:07  KeepArlen  阅读(280)  评论(0)    收藏  举报