2021-09-16

问题现象

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,修改方式自己搜索答案 ---- 因为需要修改系统编码,此方法不推荐,可能引发未知问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值