关于Springboo打成jar文件在cmd中运行日志乱码问题

现象

  • 正常开发过程中,IDEA中的日志都是正常

  • 起初以为是 windows 编码问题,后来一查,说是 logback 文件没指定编码,但是我指定了

  • 然后是因为用System.out.print("中文");打印了下,正常显示中文,所以没有怀疑是cmd编码问题,power shell开始也试了,有人说没问题,其实也乱码

  • 有人说启动命令加参数:-Dfile.encoding=UTF-8,然而并没有用

解决方案

  • 方法一:logback 中的 <charset>UTF-8</charset>改为GBK,然后你会发现问题得以解决,but,idea中又会出现乱码
  • 方法二:去掉 logback 中的 <charset>UTF-8</charset> 配置,让他跟随系统,注意不要加-Dfile.encoding=utf8参数,否则你又会入坑
  • 方法三:在cmd中执行java -jar之前,先执行 chcp 65001,临时修改下窗口编码,保留 logback中的 <charset>UTF-8</charset> 配置,然后再重启,也可以解决,当然想不想临时修改,就要去修改注册表了,这里自行百度

总结

  • 总体看下来,还是logback输出的日志编码和windows cmd不一致所致
  • cmd默认是gbk,logback如果没配置,就跟随系统,本来不配置 logback中的 <charset>UTF-8</charset> 配置还算正常,配置了,反而出乱码问题
  • 个人建议,还是加上这个编码配置,防止在linux、docker中又出现乱码
  • 至于windows cmd运行jar,本来用的就少,可以chcp 65001,要运行前,临时修改下即可
  • 也不用去修改注册表,不是懒,而是觉得没必要动系统级的配置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值