解决CentOS下Tomcat乱码问题,需从系统环境、Tomcat配置及应用层面入手,具体步骤如下:
conf/server.xml
中,找到<Connector>
标签,添加URIEncoding="UTF-8"
属性,确保请求编码为UTF-8。/etc/profile
或/etc/locale.conf
,添加export LANG=zh_CN.UTF-8
(或对应语言环境),并执行source /etc/profile
使配置生效。bin/catalina.sh
中添加export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
,指定JVM默认编码为UTF-8。WEB-INF/web.xml
中添加字符编码过滤器(以Spring为例):<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<url-pattern>/*</url-pattern>
</filter-mapping>
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
。systemctl restart tomcat
重启服务,通过访问页面或查看日志确认乱码是否解决。注意:若问题仍未解决,需检查应用代码中是否有硬编码的字符编码设置,或通过locale
命令确认系统实际编码是否与配置一致。