1.解决请求参数中文乱码
找到Tomcat安装目录,编辑conf/server.xml文件,找到以下内容:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
修改该内容:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
追加 URIEncoding=“UTF-8” 属性后,Tomcat会默认以UTF-8的编码来处理请求,可以解决中文乱码的问题。
2.解决日志中文乱码
首先找到Tomcat安装目录
windows下:打开bin目录下的catalina.bat文件,搜索JAVA_OPTS,找到
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
修改为
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=utf-8"
2019-09-19更新
在catalina.bat中搜索LOGGING_CONFIG,可以看到如下的内容:
rem LOGGING_CONFIG (Optional) Override Tomcat's logging config file
rem Example (all one line)
rem set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
可以看出我们能通过修改tomcat目录下的conf/logging.properties文件,来修改日志的编码。
打开该文件,搜java.util.logging.ConsoleHandler,可以看到如下内容:
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
我们再追加一项配置,来修改日志的编码格式即可:
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
linux下:打开bin目录下边的catalina.sh文件,添加如下配置:
JAVA_OPTS="$JAVA_OPTS = -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"