Loading...

解决Idea下Tomcat控制台及日志乱码问题

avatar

Eave L

24 Aug 2020

Java

引文

        百分之百解决,相比较网上大多数的解决方案,此方案为最佳方案,本人亲测可行,且后期不会导致控制台输入system.out乱码及tomcat生成日志乱码现象

导致乱码的原因

        导致原因显而易见,是编码不一致导致的问题,因为windows下系统默认使用的GBK编码,而tomcat在6以上就都开始采用UTF-8编码,Idea的默认编码也是GBK,就会导致乱码的出现,如下:

解决办法

        1.在Idea的 Help -- custom vm options 添加-Dfile.encoding=UTF-8,然后重启Idea;

        2.将idea的文件编码改成utf-8;

        3.添加tomcat脚本为utf-8:-Dfile.encoding=UTF-8。

        此时应该就可以了,如果还不行,就使用Dos命令 “cd /d tomcat根目录/bin" ,运行"catalina.bat run chcp65001"切换Dos命令窗口编码为utf8,如需切回来则将“chcp65001”改回"chcp 936"即可。(在做此操作时一定要先确定tomcat日志编码,一般因为tomcat/conf/logging.properties文件内的java.util.logging.ConsoleHandler.encoding = UTF-8已设置为utf8,就不用动,否则要改为utf-8,tomcat6以上源码中已改为utf-8)

一点建议

        网上有很多办法,其中有一种是改tomcat的logging.properties为GBk,不推荐这种方式,因为会导致调试时的get/post参数乱码。第一步的修改idea的方法一定要在idea工具栏的help中去修改,不要手动去目录下修改.vmoptions,因为可能位置会不对,idea会在用户目录下另外生成一个该目录。

救急方法

        tomcat使用英文日志,应急处理,在idea的tomcat配置里加vm option, 使用英文输出tomcat日志
-Duser.language=en -Duser.region=CA -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8

Recent Post