• 主页
所有文章 关于本站

  • 主页

logback windows cmd中文乱码问题

2019-03-05

原因

windows系统默认编码GBK,而springboot集成的logback的console日志默认编码设置的是UTF-8.(在spring-boot-x.x.x.RELEASE.jar的org.springframework.boot.logging.logback包下的console-appender.xml).所以导致在windows的cmd窗口日志输出为乱码.
而linux的系统默认编码为UTF-8,所以就不会有乱码问题.

解决方法

解决方法就是让系统编码和logback的编码统一,修改logback的编码配置,或修改windows cmd窗口的编码配置,或使用别的shell工具替代cmd窗口.

修改logback的编码配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<!-- <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- <charset>utf8</charset> --> <!-- 注释编码设置,此时会使用操作系统的编码,解决windows乱码问题 -->
</encoder>
</appender>
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>

修改windows系统的cmd窗口编码

打开cmd窗口,先执行一下命令,将编码改为utf-8

1
CHCP 65001

然后再执行java -Dfile.encoding=utf-8 -jar xxx.jar运行项目.

注: 其实修改了cmd的编码为65001,还是会有一些字会乱码和莫名其妙的问题,是因为windows cmd对UTF-8支持不友好,建议直接换别的shell工具(如 git bash),不要折腾cmd了.太费劲

使用其他bash工具

直接在其他bash工具下执行java -Dfile.encoding=utf-8 -jar xxx.jar运行项目.

最好的解决方法是,在linux环境下编译,打包,运行.

(完)

  • logback

扫一扫,分享到微信

微信分享二维码
emqx常用配置
Java知识点杂记、位操作、字节序
  1. 1. 原因
  2. 2. 解决方法
    1. 2.1. 修改logback的编码配置
    2. 2.2. 修改windows系统的cmd窗口编码
    3. 2.3. 使用其他bash工具
© 2022 Code0
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于本站

tag:

  • hexo
  • GitHub
  • 工控机
  • maven
  • Eclipse
  • Git
  • SSH
  • toString
  • java
  • RESTful
  • springMVC
  • jstl
  • bytecode
  • jvm
  • javap
  • IDEA
  • CLI
  • Node.js
  • DevTools
  • Shadowsocks
  • Hibernate
  • PO
  • VO
  • DAO
  • BO
  • POJO
  • DTO
  • English
  • getter-setter
  • lombok
  • gradle
  • nodejs
  • 环境变量
  • MongoDB
  • Database
  • Thread
  • Swagger
  • 摇摇车
  • Linux
  • nvm
  • smart-npm
  • 有道
  • linux
  • shadowsocks
  • 随机数
  • random
  • xfce
  • kafka
  • mysql
  • Netty
  • tio
  • Voovan
  • redis
  • ssh
  • 路由器
  • Docker
  • svn
  • sha校验
  • md5校验
  • Java
  • 位操作
  • 字节序
  • logback
  • tls
  • ca
  • 树莓派
  • dockerfile
  • centos
  • firewall
  • curl
  • wget
  • discuz
  • dns
  • docker
  • emqx
  • harbor
  • helm
  • innoSetup
  • java调用C#
  • jenkins
  • k8s
  • chrony
  • ntpdate
  • lvm
  • nfs
  • nginx
  • vsftp
  • temp
  • heap、stack
  • 堆、栈
  • 常量池
  • String
  • jQuery
  • cache
  • 缓存
  • 网络
  • application.properties
  • SpringBoot
  • BAT
  • 批处理
  • CMD

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

好记性不如烂笔头。
古人诚不我欺也!!

随着时间的流逝,发现有很多知识点都遗忘了。本博客的诞生,是为了方便日后自己查找一些遗忘的知识点。内容包含:自己写的、网上的摘抄和转载。