平常的开发中,我们通常会用到日志打印进行开发,而常常开发中,通常用到的是 Log4j 来控制日志信息,从而把日志信息打印在控制台。
小编平时使用 idea(2019.1版) 开发项目,经常用内置的 tomcat 服务器,日志打印并没有出现过乱码现象,今天在使用外部 tomcat 作为服务器进行一个demo时,进行日志打印,发生离奇的日志中文乱码现象。如下乱码现象:
要打印的日志信息:

请求地址时,控制台输出日志:
发现日志信息乱码,上网度娘,很多方法就是在运行配置上加上 VM options 加上:-Dfile.encoding=UTF-8。
原本以为问题可以解决,但设置后,再重新运行项目,一看控制台信息,顿时一首“凉凉”送给了自己。
小编再次上网查找资料,发现,也可以配置 idea bin目录下的idea64.exe.vmoptions(64位系统,32位配置idea.exe.vmoptions),在文件末尾添加:-Dfile.encoding=UTF-8,重启 idea,可以解决日志打印乱码问题,如下:
本以为可以解决的,但运行后,项目打印日志信息还是乱码,网上的解决方法基本都是这些了,只能胡乱尝试一通,因为之前小编把在项目运行配置的VM options 的属性值-Dfile.encoding=UTF-8删除了,所以小编又在运行配置VM options 加上
-Dfile.encoding=UTF-8,再次运行项目,这次看控制台的日志信息:
日志打印信息不再乱码了。至于什么原因,小编目前也不清楚,有知道何解的大神,也可以评论告知小编。
总结今次解决日志乱码问题:
- 配置idea文件(idea安装目录的bin目录下):64位系统配置idea64.exe.vmoptions,32位配置idea.exe.vmoptions,在文件内容末尾添加:-Dfile.encoding=UTF-8。保存后重新启动idea(必须重启idea);
- 在项目运行配置属性VM options,属性值为:-Dfile.encoding=UTF-8。
以上两个方法,缺一不可,这次经验纯属小编意外解决的,不知能否给大家帮助,如能同样解决你的问题,请为小编点赞!