-
idea启动Tomcat服务打印日志以及语句输出中文乱码问题
-
idea启动Tomcat服务打印日志以及语句输出中文乱码问题
- 方法记录
- 第一种方法
- 第二种方法
- 还是没有解决
2021年6月14-16日,在学习SpringMVC时,需要启动web项目同时点击网页按钮时后台输出一串中文提示信息,结果遇到中文乱码问题。
-
最先遇到的情况一:tomcat启动打印中文日志信息乱码;(System.out.printf输出正常)
开始看网上其他人的经验瞎改乱改,试了许多方法,把能改的编码方式都设置成了UTF-8
起先找到了第一个可以解决中文打印日志乱码的方法,如下:
将tomcat安装目录下D:\Tomcat\apache-tomcat-9.0.33\conf,在conf目录下找到logging.properties文件,将里面的java.util.logging.ConsoleHandler.encoding = UTF-8 修改为 GBK,此时发现idea中Tomcat后台日志打印不再乱码。
本来以为问题解决了,然而。。。
当启动项目运行,执行了一条
System.out.println("我了个去,I KNOW YOU");
之后,发现后台输出是乱码的。于是就开始找第二种方法。
-
情况二:后台日志打印正常,但print输出乱码;
按照网上博客给出的方法实验后都没有效果,此时idea已经被我重启了十多次。
然后,我有点绝望,偶然间扫了扫打开的其中一篇博客的评论区,发现里面有一个用户发了一串长文,前面提出的方法和我之前看到的没什么不同,但是他在最后提醒了一点,对于idea的配置,有一个地方会覆盖idea安装目录下的配置,就是
C:\Users\我的用户名命名的文件夹\.IntelliJIdeaxxx\config下的配置,可能需要修改。于是我改了,然后成功了。
以下是解决方法记录
方法记录
第一种方法
-
找到Tomcat安装目录下的conf文件夹.如:D:\apache-tomcat-8.5.37\conf;
-
找到logging.properties文件
-
修改
java.util.logging.ConsoleHandler.encoding =utf-8
为java.util.logging.ConsoleHandler.encoding = GBK
;
这段话是看了另一个大佬的评论写的:
这种方法不是主流的,但优点是在idea控制台和dos命令窗口启动时都可避免中文乱码; 缺点是idea上Run/Debug Configurations-->VM options:设置为-Dfile.encoding=UTF-8时 System.out.printf()输出中文会出现乱码;且idea启动Tomcat时控制台的 Tomcat catalina log页面 还是中文乱码;
本人当时看别人的博客找解决方法,采用这种方式时就踩到了坑,导致sout输出乱码
第二种方法
- 第一步:在file->settings->appearence里修改Name的值为支持中文的字体,微软雅黑就可以
-
第二步:在file → setting → Editor → File Encodings中设置字体编码格式为UTF-8
-
第三步:到idea的安装目录下的bin目录,找到两个文件,如下图:
编辑这两个文件,在末尾加上-Dfile.encoding=UTF-8
-Dfile.encoding=UTF-8
如果这两个文件没法用记事本打开,提示你要下载某个软件,可以直接用idea或者其他编辑器打开。
此时重启idea,重新运行项目,正常情况下日志和print输出的信息应该不会乱码。
还是没有解决
如果还是没有解决,所有配置都没有问题的情况下,有两种解释:
-
IDEA把项目的字体编码弄错了
在项目的目录下,找到.idea文件夹,找到encodings.xml文件
查看里面是否设置了其他编码方式,修改为UTF-8,再次启动试试
设置了其他编码的原因可能是之前点了idea右下角的编码按钮修改过编码方式,被记录到了encodings.xml中。
-
虽然修改了idea安装目录里面的两个文件,但是还有一个地方,它覆盖了在之前两个文件中的配置。
在C盘下进入
C:\Users\你自己的用户名\\.IntelliJIdea xxxx(idea版本)\config
,在这个目录下面也有一个文件idea64.exe.vmoptions,它覆盖了idea安装目录下的文件配置。
所以,同样在这个文件的末尾加上
-Dfile.encoding=UTF-8
重新启动idea,看看效果,本人就是因为这个原因,试了很多方法,但是忽略了这种情况。
来源:https://www.cnblogs.com/renxin-Li/p/14891083.html