IDEA控制台乱码问题分析解决
问题现象
IDEA控制台输出乱码
问题分析过程
首先明确四个地方的编码设置及其含义:
1
、 Tomcat日志编码输出格式。Services的日志字符集编码设置在Tomcat安装目录下,/conf/logging.properties 文件中的java.util.logging.ConsoleHandler.encoding 我下载的版本是8.5.70,默认是UTF-8
2
、 Log4J日志输出编码。在工程中使用的log种类的配置文件中,比如说logback.xml中
如下图所示:
3
、 系统默认编码格式
Windows 打开命令行,使用chcp命令查看默认编码格式,一般是GBK(936)
4
、 IDEA 控制台编码格式,Help –> Edit Custom VM Options ,可以自己修改,如图所示修改,如果没有设置,那就是系统默认编码(GBK)
乱码有三种编码来源,即上面所说的1,2,3所对应的编码格式,如下图所示
(1) tomcat启动自带的日志
(2) log.info(logback)打印的日志
(3) System.out.print打印的日志
解决办法(里面所说的1,2,3,4对应问题分析过程中的1234)
需要保证1, 2, 3的编码输出和Idea的编码输出(即4)保持一致即可。
在这里我推荐都改成系统默认格式(即GBK) 已知,3和4都是GBK,把1和2修改即可
当然,也可以都改成UTF-8
1默认是UTF-8(我下载的版本),无需修改,4在Idea中Help菜单修改
对于2和3有以下两种方式修改
(1)在VM参数中添加-Dfile.encoding=UTF-8,无需在logback.xml中设置charset
(2)分别修改:2在logback中设置charset,如之前图所示内容,3修改系统默认编码为UFT-8,修改方式自己搜索答案 ---- 因为需要修改系统编码,此方法不推荐
,可能引发未知问题。