在 Windows 系统上,Tomcat 控制台输出的日志乱码通常是由于控制台的字符编码与日志输出的字符编码不匹配导致的。以下是解决这个问题的几种方法:
方法 1:修改 IntelliJ IDEA 控制台的字符编码
- 打开 IntelliJ IDEA。
- 进入
File
->Settings
(或Ctrl + Alt + S
)。 - 在左侧导航栏中,找到
Editor
->File Encodings
。 - 在右侧的
Global Encoding
和Project Encoding
中,确保编码设置为UTF-8
。 - 在
Default encoding for properties files
中,也设置为UTF-8
。 - 点击
Apply
和OK
保存设置。
方法 2:修改 Tomcat 的启动脚本
你可以在 catalina.bat
文件中添加 JVM 参数,强制指定日志输出的字符编码为 UTF-8。
- 打开
D:\tools\apache-tomcat-9.0.19\bin\catalina.bat
文件。 - 在文件的开头或
set "JAVA_OPTS=%JAVA_OPTS% ..."
的地方,添加以下 JVM 参数:set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"
- 保存文件并重新启动 Tomcat。
方法 3:修改 Windows 控制台的字符编码
你可以通过修改 Windows 控制台的字符编码为 UTF-8 来解决乱码问题。
- 打开命令提示符(cmd)。
- 输入以下命令,将控制台的字符编码设置为 UTF-8:
chcp 65001
- 然后重新启动 Tomcat
方法 4:修改 IntelliJ IDEA 的运行配置
如果你是通过 IntelliJ IDEA 启动 Tomcat,可以在运行配置中指定 JVM 参数。
- 打开 IntelliJ IDEA。
- 进入
Run
->Edit Configurations
。 - 选择你的 Tomcat 运行配置。
- 在
VM options
中添加以下参数:-Dfile.encoding=UTF-8
- 点击
Apply
和OK
保存设置,然后重新启动 Tomcat。
方法 5:修改 Tomcat 的日志配置文件
你还可以通过修改 Tomcat 的日志配置文件来指定日志输出的字符编码。
- 打开
D:\tools\apache-tomcat-9.0.19\conf\logging.properties
文件。 - 找到
java.util.logging.ConsoleHandler.encoding
属性,并将其值设置为UTF-8
:java.util.logging.ConsoleHandler.encoding = UTF-8
- 保存文件并重新启动 Tomcat。
方法 6:使用 PowerShell 启动 Tomcat
如果你使用 PowerShell 启动 Tomcat,可以尝试在 PowerShell 中设置字符编码为 UTF-8。
- 打开 PowerShell。
- 输入以下命令启动 Tomcat:
$env:JAVA_OPTS="-Dfile.encoding=UTF-8" D:\tools\apache-tomcat-9.0.19\bin\catalina.bat run
通过以上方法之一,你应该能够解决 Tomcat 控制台日志乱码的问题。如果问题仍然存在,请确保你的系统和应用程序的字符编码设置一致。