使用IDEA在本地启动tomcat进行调试时,发现日志/页面会出现乱码的状况,经过如下方式解决问题。java
如下操做所有在Windows10系统中。web
- 直接启动tomcat会出现控制台汉字乱码的问题。
这是由于 tomcat启动默认编码 UTF-8,windows系统默认编码市 GBK,因此最简单的方式就是将tomcat的默认编码改成GBK便可。apache
找到tomcat目录下的 conf/logging.properties 文件,将以下配置修改成GBKwindows
java.util.logging.ConsoleHandler.encoding = GBK
- Catalina.log 和localhost.log出现乱码状况,能够尝试如下修改
1catalina.org.apache.juli.AsyncFileHandler.level = FINE1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK2localhost.org.apache.juli.AsyncFileHandler.level = FINE2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK3manager.org.apache.juli.AsyncFileHandler.level = FINE3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs3manager.org.apache.juli.AsyncFileHandler.prefix = manager.3manager.org.apache.juli.AsyncFileHandler.encoding = GBK4host-manager.org.apache.juli.AsyncFileHandler.level = FINE4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.4host-manager.org.apache.juli.AsyncFileHandler.encoding = GBKjava.util.logging.ConsoleHandler.level = FINEjava.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatterjava.util.logging.ConsoleHandler.encoding = GBK
- 访问页面乱码
尝试conf/server.xml,在Connector标签中加入 URIEncoding = "UTF-8" ,无效tomcat
<Connector connectionTimeout="20000"port="8080"protocol="HTTP/1.1"redirectPort="8443"maxPostSize="0"URIEncoding="UTF-8"/
修改bin/catalina.bat,可能会致使 tomcat启动异常 ,无效编码
set “JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8
最后,修改 conf/web.xml 问题解决spa
<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>fileEncoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet>