Tomcat 日志出现乱码,通常不是 Tomcat“本身坏了”,而是字符编码在某一环节不一致导致的。下面按常见原因和解决办法系统说明。
Tomcat 默认日志输出到控制台时是 UTF-8,但 Windows 控制台默认是 GBK。
现象
catalina.out 或启动窗口中文乱码解决办法
chcp 65001
再启动 Tomcat,或:
logging.properties 编码未指定Tomcat 使用 JUL(java.util.logging)
路径:
conf/logging.properties
确保包含:
java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.FileHandler.encoding = UTF-8
查看:
java -XshowSettings:properties -version
如果不是 UTF-8,在 catalina.sh / catalina.bat 中加:
-Dfile.encoding=UTF-8
例如:
JAVA_OPTS="-Dfile.encoding=UTF-8"
<encoder>
<pattern>%d %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<PatternLayout charset="UTF-8" pattern="%d %msg%n"/>
locale
如果不是:
LANG=en_US.UTF-8
可修改:
export LANG=en_US.UTF-8
| 检查项 | 是否正确 |
|---|---|
JVM -Dfile.encoding=UTF-8 |
✅ |
logging.properties UTF-8 |
✅ |
| 应用日志框架 UTF-8 | ✅ |
| 控制台 / 终端 UTF-8 | ✅ |
| 编辑器 UTF-8 | ✅ |
Tomcat 日志乱码 = 编码在“写日志 → 输出 → 显示”任一环节不一致
如果你愿意,可以告诉我:
catalina.out / 应用日志)我可以给你精准的一行配置方案。