关于tomcat乱码和idea中控制台乱码的问题
在使用tomcat的时候,发现在windows的dos命令中输出中文乱码,故设置tomcat的utf-8改为gbk。然后dos命令不乱码了。
在使用idea2023.2版本时候。发现idea的控制台打印乱码。于是又把idea编码和tomcat编码统一成utf-8了,此时控制台没有乱码,但是tomcat打印日志会乱码。对此网上教程很多,例如修改vm options,修改jvm等配置,一通折腾
。
老版本(如 2023.2.3)中,如果你的系统是 Windows 中文版,IDEA 控制台可能默认使用 GBK 编码,而你的 Tomcat 设置用的是 UTF-8,这就造成:
而我在使用idea2023.3.8版本的时候,发现同样的配置,即为了解决tomcat的乱码问题,我将tomcat设置GBK,此时没有对idea进行修改
,idea控制台就没有乱码了。据说是IDEA 2023.3+ 改进了对 JVM 输出编码的自动识别,不过这个需要jdk也比较新,估计要求18即以上版本才行。
此时idea配置没有变动:
从 2023.3 开始,JetBrains 对运行/调试控制台的 输出编码自动匹配机制更智能,可以根据 file.encoding 自动适配控制台字符集。
个人推荐直接升级版本,尤其现在2025年了使用2023.3的版本也不算新,何不使用新版本呢,省的修改一通,可能在修改过程中导致埋下隐藏的问题。
此外,jetbrains也提出了一些解决方案:
在使用 IntelliJ IDEA 时遇到的一些乱码问题的解决方案
展示
对于之前的情况,就是server可以正常显示了,catalina.log就乱码,catalina.log正常了,server就乱码,总是至少一方有问题。现在使用idea2023.3.8+jdk21+tomcat10+设置tomcat的编码为GBK就没有问题了。