文章目录

  • 乱码输出
  • 原因
  • 调试 && 解决
  • 有人乱码,有人不乱码
  • 其他

乱码输出

正常的输出:

...
19-Sep-2020 19:14:30.875 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
19-Sep-2020 19:14:30.890 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
19-Sep-2020 19:14:30.896 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1176 ms

乱码的输出:

...
19-Sep-2020 19:15:38.624 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
19-Sep-2020 19:15:38.640 淇℃伅 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
19-Sep-2020 19:15:38.645 淇℃伅 [main] org.apache.catalina.startup.Catalina.start Server startup in 1243 ms

如图:

原因

Windows系统控制台的编码(默认为GBK)
Tomcat的控制台日志配置的编码方案与之不匹配。

没有哪里配置错了,只是不一致,无法匹配而已。

打个比方:咱两约定了加密通信,然后你想告诉我“我爱和平”,查字典A,这四个字对应的编号为:12 21 23 34,然后把12 21 23 34发给了我。

我本来应该在字典A中查这些编号对应的文字,可是我没有(因为你并没有告诉我你使用的是字典A中的映射规则)。
我在字典B中查询这4个编号对应的信息,拼起来是:“天山雪莲”,或者是“里香很蓝”,
总之,我因为采用了错误的翻译规则,得到了错误的信息,可能与你原本要表达的信息截然相反,也可能风马牛不相及。

已知:
Windows系统中cmd使用的编码默认为GBK,而Tomcat的控制台日志的配置可不一定是GBK

调试 && 解决

解决方案两种,但就一个方向:使得系统内部的参与者使用统一的通信转换规则(互相知道彼此的编码方案是什么)。

  • Windows cmd 编码修改方式

Windows cmd 默认编码为GBK
设置cmd的编码为GBK: chcp 936
设置cmd的编码为UTF-8: chcp 65001
查看cmd的编码: chcpmode
chcp表示:Change Code Page,改变代码页(使用的编码方案)。

  • Tomcat 控制台日志 编码配置方式

编辑CATALINA_HOME/conf/logging.properties中关于java.util.logging.ConsoleHandler的配置项。

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
  • 解决方式

    1. cmd中chcp 65001然后启动tomcat:catalina run。这是统一编码为UTF-8
    2. cmd不变,修改tomcat的控制台日志配置:
      java.util.logging.ConsoleHandler.encoding = GBK,这是程序配置迁就系统的控制台环境。

有人乱码,有人不乱码

可能性太多了,比如:二者使用了不同的tomcat版本,而这两个版本正好有个相关配置不同。

Tomcat中,负责输出日志到控制台的类为:java.util.logging.ConsoleHandler
在不同版本中配置文件中相关的配置项不一致
配置项为:CATALINA_HOME/conf/logging.properties

  • 9.0.12 未乱码
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandlerjava.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
  • 9.0.22 乱码
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandlerjava.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

可以看到9.0.229.0.12多了一行配置:java.util.logging.ConsoleHandler.encoding = UTF-8

其他版本未测。
如果有兴趣可以在这里找到tomcat所有版本的下载链接,完成自测。

其他

以上只是考虑了以下两者:

  • Windows系统的cmd窗口使用的编码方式;
  • Tomcat中控制台日志的关于编码的配置

如果你是在IDE中(如eclipseIDEA)中出现了相同的问题。
那可以现在控制台中启动测试。确定无误后引入IDE操作,并调试IDE中关于encoding的配置。

Tomcat 控制台 乱码 淇℃伅相关推荐

  1. IDEA控制台乱码 淇℃伅

    淇℃伅 解决 找到 tomcat/conf/logging.properties 文件 修改 java.util.logging.ConsoleHandler.encoding = GBK 成功

  2. 启动Tomcat出现乱码--淇℃伅

    大家刚刚安装完tomcat后,首次运行可能会出现如下的报错: 那么怎么办呢?解决办法很简单: 首先,打开自己的tomcat安装目录下的conf/logging.properties文件夹,修改logg ...

  3. IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 “淇℃伅”(2019/01/25)

    转载:IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 "淇℃伅"(2019/01/25) - What'_up - 博客园(win10系统) ...

  4. IDEA启动tomcat时出现乱码——淇℃伅

    IDEA启动tomcat时出现乱码--淇℃伅 IntelliJ IDEA 2019 配置 Tomcat 启动后 ,控制台出现中文乱码 "淇℃伅". 解决办法: 打开到tomcat安 ...

  5. IDEA工具避坑指南(五):如何统一编码为UTF-8 | Tomcat控制台乱码

    前言 在使用IDEA工具之前,必须做的优化之一,统一编码格式:本文以UTF-8为例 注:UTF-8对中文比较友好,这个编码格式一个字符占用3个字节. 步骤 1.常规全局设置 1.点击File--Set ...

  6. idea启动Tomcat控制台乱码但是不报错

    启动Tomcat之后,会出现下面这样的乱码 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED ...

  7. Tomcat 最新版安装与使用手册,tomcat更改端口号方法,tomcat控制台乱码问题解决方法

    Tomcat 9 安装与使用手册 第一章:tomcat 安装与配置 ① java环境 ② 工具下载 ③ 环境配置 ④ 启动 ⑤ 修改端口号 第二章:问题解决 ① 启动 startup 闪退查找原因的方 ...

  8. IntelliJ IDEA启动Tomcat控制台乱码问题解决

    tomcat启动乱码如下: 修改tomcat下载路径下的配置文件logging.properties,如果该文件在C盘下一定得用管理员权限打开才可以进行修改 将第四十七行的改为如下 #控制台的日志输出 ...

  9. tomcat 控制台乱码 windows下

    tomcat启动时控制台乱码.但是看日志又是正常编码,只是控制台是乱码. 找到  config/logging.properties java.util.logging.ConsoleHandler. ...

最新文章

  1. 2021年大数据Hadoop(九):HDFS的高级使用命令
  2. 百家争鸣|国内外NLP领域学术界和工业界的牛人和团队
  3. SOA之(2)——SOA架构基础概念与设计框架
  4. Freebsd 下用 sshguard 防止暴力破解 ssh 密码
  5. Spring中的BeanPostProcessor接口
  6. DL之DilatedConvolutions:Dilated Convolutions(膨胀卷积/扩张卷积)算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  7. CF997E. Good Subsegments(线段树,单调栈)
  8. 100-48微软(运算)
  9. 类似于html的语言,其他语言的类似CL-WHO的HTML模板?
  10. python中使用C类型的数组
  11. ASP.NET中插入Flash
  12. android Camera framework层解析
  13. ARC 环境下 dealloc 的使用误区
  14. 站在巨人的肩膀上——Linux信号量操作
  15. 数据结构PTA 案例6-1.3 哥尼斯堡的“七桥问题”
  16. python 读取网页源码_python获取整个网页源码的方法
  17. 百思不得姐php源码,微信小程序实战教程: 仿百思不得姐demo(附源码)
  18. CoreText(五):省略号
  19. (目录)微气候模型ENVI-met模拟的基本使用教程
  20. 登陆页面+匹配数据库+提示登陆成功或失败

热门文章

  1. markdown编辑希腊字母
  2. amd锐龙笔记本cpu怎么样_不知不觉已经15款 AMD Ryzen锐龙笔记本处理器盘点
  3. 计算机网络 初中信息技术教案,初中信息技术教案
  4. android 通过sheme打开activity
  5. 【Python技能树共建】字符串方法
  6. [中国近代史] 第六章测验
  7. 有哪些游戏蓝牙耳机,英雄联盟手游赛事耳机分享
  8. wps怎么添加书签页面
  9. 印象笔记如何设置默认笔记本
  10. photoshop5.5切图格式为gif-转为png(单个切片保存)