Tomcat 控制台中文乱码,应用页面显示中文乱码
前言
2019年11月,客户提出,web应用需要从Websphere部署改为Tomcat部署。毕竟WAS的license是收费的,而且按照CPU核数收入,每年是一笔不小的费用。
采用Tomcat测试功能,所遇到的问题-中文乱码,记录如下。
一、tomcat 部分页面,如静态html显示中文乱码
-
确认页面编码是否为UTF-8
-
tomcat/bin/catalina.bat 文件添加UTF-8编码
文件187行左右,添加如下命令:
set JAVA_OPTS= -Xms2048M -Xmx4096m -XX:PermSize=1024M -XX:MaxPermSize=2048m -Dfile.encoding=UTF8
做了1和2,已经不存在中文乱码了,如果不行配置3和4后再tomcat重启
- tomcat/conf/server.xml 添加URIEncoding=“UTF-8”
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
- tomcat/conf/web.xml 设置Encoding=“UTF-8”
<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>
二、控制台显示中文乱码
检查控制台编码,属性如下,GBK编码
解决办法1: 不推荐
接下来需要修改cmd命令行的编码,打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat(如果你改了tomcat的标题栏,这里就是你打开的命令窗口的名字),找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。
检查Tomcat 属性,编码为65001:UTF-8
控制台不在乱码
解决办法2:推荐
Tomcat/conf/logging.properties
43行加:
java.util.logging.ConsoleHandler.encoding = GBK
重启Tomcat后,控制台显示中文正常。