Tomcat版本:8.5.27
IntelliJ IDEA版本:Ultimate 2021.1
Tomcat部署启动ssm项目时发现三个地方的日志乱码:
Serve:服务控制台日志
Tomcat Localhost Log:Tomcat本地日志
Tomcat Catalina Log:Tomcat Catalina日志
一开始一直以为是idea的问题,通过各方验证,是项目中文件的编码格式与tomcat中的日志文件编码格式不一致造成的。
当我将tomcat的日志文件编码格式修改之后发现项目中的System.out.print依旧是乱码,这时候在定位发现是jvm的编码不对,需要修改jvm的编码
首先确认项目中文件的编码格式,随便在idea打开一个项目中的文件,在右下角可以看到这个文件的编码格式。如果发现项目中文件的编码格式不一致,最好将所有文件编码格式做一下统一。
确认了格式之后就是修改了,考虑到我们可能负责很多项目,而不同项目有不同的编码格式,因此给出两个方案
在tomcat的路径下找个catalina.bat文件(\bin\catalina.bat)
找到该文件中的JAVA_OPTS设置的地方:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
在后面添加编码参数: -Dfile.encoding=UTF-8
最终结果如下:
set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dfile.encoding=UTF-8"