林檀有追新的习惯,趁今天有空闲,就把所有的开发相关的工具更新了一下。

但在更新Tomcat后(9.0.13 – 9.0.16),林檀执行startup命令来测试,却发现Log里的中文全部乱码。

emmm,果然当第一个吃螃蟹的人不容易。

上网搜了一下,大部分解决方案都是说CMD的编码为GBK(936),而Tomcat 8 编码为UTF-8(65001),需要统一一下。

现在林檀这里的问题是,更新前的9.0.13版本一切正常。So,跳过,继续。

终于,在这篇文章下(感谢作者),林檀找到了原因:
https://blog.csdn.net/colcool/article/details/85180935

简单来说,
9.0.14之前版本的Log编码都是由系统指定的。
9.0.14及之后版本新增了对Log编码的指定,默认为UTF-8。但控制台编码为GBK,二者存在编码冲突,即乱码。

既然知道原因,那想解决就容易多了。

进入Tomcat安装目录,打开conf/logging.properties文件,找到以下代码:

1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
......
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
......
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
......
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
......
java.util.logging.ConsoleHandler.encoding = UTF-8

删除,或者注释掉。

OK~

分类: SE_Tomcat

发表评论

电子邮件地址不会被公开。 必填项已用*标注