Tomcat 控制台 乱码 淇℃伅
文章目录
- 乱码输出
- 原因
- 调试 && 解决
- 有人乱码,有人不乱码
- 其他
乱码输出
正常的输出:
...
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的编码: chcp
或 mode
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
- 解决方式
- cmd中
chcp 65001
然后启动tomcat:catalina run
。这是统一编码为UTF-8
- cmd不变,修改tomcat的控制台日志配置:
java.util.logging.ConsoleHandler.encoding = GBK
,这是程序配置迁就系统的控制台环境。
- cmd中
有人乱码,有人不乱码
可能性太多了,比如:二者使用了不同的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.22
比9.0.12
多了一行配置:java.util.logging.ConsoleHandler.encoding = UTF-8
其他版本未测。
如果有兴趣可以在这里找到tomcat所有版本的下载链接,完成自测。
其他
以上只是考虑了以下两者:
- Windows系统的cmd窗口使用的编码方式;
- Tomcat中控制台日志的关于编码的配置
如果你是在IDE中(如eclipse
和IDEA
)中出现了相同的问题。
那可以现在控制台中启动测试。确定无误后引入IDE操作,并调试IDE中关于encoding
的配置。
Tomcat 控制台 乱码 淇℃伅相关推荐
- IDEA控制台乱码 淇℃伅
淇℃伅 解决 找到 tomcat/conf/logging.properties 文件 修改 java.util.logging.ConsoleHandler.encoding = GBK 成功
- 启动Tomcat出现乱码--淇℃伅
大家刚刚安装完tomcat后,首次运行可能会出现如下的报错: 那么怎么办呢?解决办法很简单: 首先,打开自己的tomcat安装目录下的conf/logging.properties文件夹,修改logg ...
- IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 “淇℃伅”(2019/01/25)
转载:IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 "淇℃伅"(2019/01/25) - What'_up - 博客园(win10系统) ...
- IDEA启动tomcat时出现乱码——淇℃伅
IDEA启动tomcat时出现乱码--淇℃伅 IntelliJ IDEA 2019 配置 Tomcat 启动后 ,控制台出现中文乱码 "淇℃伅". 解决办法: 打开到tomcat安 ...
- IDEA工具避坑指南(五):如何统一编码为UTF-8 | Tomcat控制台乱码
前言 在使用IDEA工具之前,必须做的优化之一,统一编码格式:本文以UTF-8为例 注:UTF-8对中文比较友好,这个编码格式一个字符占用3个字节. 步骤 1.常规全局设置 1.点击File--Set ...
- idea启动Tomcat控制台乱码但是不报错
启动Tomcat之后,会出现下面这样的乱码 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED ...
- Tomcat 最新版安装与使用手册,tomcat更改端口号方法,tomcat控制台乱码问题解决方法
Tomcat 9 安装与使用手册 第一章:tomcat 安装与配置 ① java环境 ② 工具下载 ③ 环境配置 ④ 启动 ⑤ 修改端口号 第二章:问题解决 ① 启动 startup 闪退查找原因的方 ...
- IntelliJ IDEA启动Tomcat控制台乱码问题解决
tomcat启动乱码如下: 修改tomcat下载路径下的配置文件logging.properties,如果该文件在C盘下一定得用管理员权限打开才可以进行修改 将第四十七行的改为如下 #控制台的日志输出 ...
- tomcat 控制台乱码 windows下
tomcat启动时控制台乱码.但是看日志又是正常编码,只是控制台是乱码. 找到 config/logging.properties java.util.logging.ConsoleHandler. ...
最新文章
- 2021年大数据Hadoop(九):HDFS的高级使用命令
- 百家争鸣|国内外NLP领域学术界和工业界的牛人和团队
- SOA之(2)——SOA架构基础概念与设计框架
- Freebsd 下用 sshguard 防止暴力破解 ssh 密码
- Spring中的BeanPostProcessor接口
- DL之DilatedConvolutions:Dilated Convolutions(膨胀卷积/扩张卷积)算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- CF997E. Good Subsegments(线段树,单调栈)
- 100-48微软(运算)
- 类似于html的语言,其他语言的类似CL-WHO的HTML模板?
- python中使用C类型的数组
- ASP.NET中插入Flash
- android Camera framework层解析
- ARC 环境下 dealloc 的使用误区
- 站在巨人的肩膀上——Linux信号量操作
- 数据结构PTA 案例6-1.3 哥尼斯堡的“七桥问题”
- python 读取网页源码_python获取整个网页源码的方法
- 百思不得姐php源码,微信小程序实战教程: 仿百思不得姐demo(附源码)
- CoreText(五):省略号
- (目录)微气候模型ENVI-met模拟的基本使用教程
- 登陆页面+匹配数据库+提示登陆成功或失败