最近一次性从tomcat 9升级到tomcat 10,同时Java sdk也从1.8升级到21。
升级过程中,当然会遇到很多问题,但是控制台输出中文乱码问题,着实折腾了很久。
网上说的很多通用方法都试过了,就是不生效。包括如下:
基本上网上说的方法,也就这些方法,全部都试过了,就是不行。
仔细查看控制台输出,发现并不是所有地方都是乱码。如下图所示。
有乱码的地方,都是使用:System.out.println 输出到内容。tomcat自身的输出,都是正常中文。
如果IDEA不经过tomcat,直接使用System.out.println输出,那么会不会是乱码呢?
写一个测试,执行输出,正常。那说明就是tomcat的问题,不是IDEA的问题。
1)修改tomcat中conf文件夹下的logging.properties文件。将编码从utf-8改成gbk。
2)修改idea中控制台输出配置为GBK。
3)重启项目,终于看到输出中文了。
注意:这2个地方,必须改成一致,都设置为GBK。如果不一致,仍然会是乱码。都是UTF-8,也会是乱码。