IntelliJ IDEA 中 Tomcat 控制台乱码解决方法(更新于2025/11)

IntelliJ IDEA 中 Tomcat 控制台乱码解决方法(更新于2025/11)

首先,看一下处理过后的控制台输出

image-20251111153614250

非常的清爽啊,心旷神怡。(感觉心情美美哒)

之前一直都看着乱码的控制台,想着反正对实际应用没什么影响,等下弄一下,一天就过去了,还不如多做点事情,学点技术。但今天运行时,看到一团乱麻麻的东西在我的控制台,而我的测试的日志却掺杂在其中,感觉它真的是孤立无援,遂狠下心,特来解救。

看了很多解决文章,尝试了很多遍。

先给出我的idea版本及tomcat版本,又可能版本不同,解决办法不同。(最后面给出了我尝试过的方法)

如未解决你的问题,请勿责怪,小生这厢有礼了。( శ 3ੜ)~♥

如果刚好解决了你的问题,还请给这厮一个免费的小心心,(。◝‿◜。)

idea:IntelliJ IDEA 2024.1.7

tomcat:Tomcat 10.1.19

最终解决我的问题的办法是~ ~ ~

它就是~ ~ ~

修改 Tomcat 的日志编码配置

  1. 找到 Tomcat 安装目录下的 conf/logging.properties 文件(例如我的路径:D:\soft\javasoft\tomcat\apache-tomcat-10.1.19\conf\logging.properties)。
  2. 打开文件,搜索 java.util.logging.ConsoleHandler.encoding,默认可能是 UTF-8 或 ,将其修改为 GBK
java.util.logging.ConsoleHandler.encoding = UTF-8

对的,我只修改了这一处地方就解决了。

原理说明

乱码的核心是“Tomcat输出的编码”与“IDEA控制台解码用的编码”不一致。(我的系统默认编码为GBK)。

java.util.logging.ConsoleHandler.encoding 这个配置,决定了 Tomcat 在输出日志时,会把日志中的字符(比如中文 “信息”)转换成哪种字节流(编码过程)。

  • 如果你设置为 GBK,Tomcat 就会用 GBK 编码把 “信息” 转换成对应的字节流。
    如果你设置为 UTF-8,Tomcat 就会用 UTF-8 编码把 “信息” 转换成对应的字节流。

IDEA 控制台在显示日志时,需要把 Tomcat 输出的字节流再转回字符(解码过程),而它会使用自身默认的解码编码(通常与系统环境或 IDEA 配置相关)。

我的情况中,IDEA 控制台的默认解码编码其实是 GBK(可能是因为我的操作系统是中文 Windows,系统默认编码为 GBK,IDEA 继承了这个编码)。

当 Tomcat 用 UTF-8 编码输出(字节流是 UTF-8 格式),但 IDEA 用 GBK 解码时:GBK 无法正确解析 UTF-8 字节流,就会出现乱码。

另外的方法

然后在下面给出我尝试过的一个方法(对我是没用):

在IDEA中运行Tomcat时出现控制台乱码,通常是由于编码格式不匹配导致的(Tomcat输出编码与IDEA控制台解码格式不一致)。以下是具体解决步骤:

1. 检查并修改Tomcat的日志编码配置

Tomcat的日志输出编码由其配置文件控制,需要确保与IDEA控制台编码一致。

  • 找到Tomcat安装目录下的 conf/logging.properties 文件(例如你的路径:D:\soft\javasoft\tomcat\apache-tomcat-10.1.19\conf\logging.properties)。
  • 打开文件,搜索 java.util.logging.ConsoleHandler.encoding,默认可能是 UTF-8GBK,将其修改为 UTF-8(统一编码):
    java.util.logging.ConsoleHandler.encoding = UTF-8
    

2. 配置IDEA的文件编码

确保IDEA的全局编码、项目编码均为UTF-8,避免编码冲突。

  • 打开IDEA设置:File -> Settings -> Editor -> File Encodings
  • 将以下三个选项全部设置为 UTF-8
    • Global Encoding
    • Project Encoding
    • Default encoding for properties files
  • 勾选 Transparent native-to-ascii conversion(避免properties文件乱码)。

3. 配置Tomcat在IDEA中的运行参数

强制JVM使用UTF-8编码输出,避免因JVM默认编码导致的乱码。

  • 打开Tomcat运行配置:Run -> Edit Configurations
  • 在左侧选择你的Tomcat实例,切换到 VM options 选项卡,添加以下参数:
    -Dfile.encoding=UTF-8
    -Dsun.jnu.encoding=UTF-8
    

4. (可选)修改Tomcat启动脚本编码(Windows系统)

如果上述步骤无效,可尝试修改Tomcat的启动脚本,强制指定编码。

  • 找到Tomcat安装目录下的 bin/catalina.bat 文件。
  • 打开文件,在开头添加以下内容(指定JVM编码):
    set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
    

5. 重启验证

  • 关闭IDEA和Tomcat,重新打开IDEA并启动项目,查看控制台是否正常显示中文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值