目录
1、背景
windows服务器安装两tomcat服务器,端口分别为8081,8082,cmd窗口启动控制台8081无乱码,窗口启动控制台8082乱码,且项目日志显示乱码,所部署项目编码均为UTF-8;
2、常规的解决方法:
2.1、logging.properties文件
找到tomcat目录下conf/logging.properties,设置java.util.logging.ConsoleHandler.encoding = UTF-8
、
2.2、catalina.bat文件
修改tomcat的启动参数,使其编码格式变为UTF-8,找到{tomcat_dir}/bin/catalina.bat文件,在set JAVA_OPTS= 后添加:-Dfile.encoding=UTF-8,如下图:重启tomcat
2.3、server.xml
修改tomcat服务器配置字符集为utf-8,找到/conf目录/server.xml文件
将相关语句改为:
<Connector port=“8008” protocol=“HTTP/1.1”
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
3、注册表
在尝试过上述方法后,tomcat控制台日志依旧是乱码,通过鼠标查看cmd窗口属性
windows默认编码集为GBK,startup.bat启动tomcat时,它会读取catalina.bat的代码并打开一个新窗口运行。打开的cmd默认编码可能不是utf-8,与系统编码不一致,所以导致乱码。
结论:Tomcat命令窗口字符编码(GBK)与显示的字符编码(UTF-8)不匹配
第一步:Windows+R打开运行,输入regedit进入注册表编辑器
第二步:在HKEY_CURRENT_USER→Console→Tomcat8082中修改CodePage为十进制的65001
注意:如果没有Tomcat8082或者CodePage,直接新建一个;新建项名称保持和tomcat的cmd顶部启动名称一致
至此,问题彻底解决