索引
问题重现解决问题一、问题识别二、解决问题附加:还有一个方法。是基于Intellij IDEA本身的问题。问题重现
解决问题
一、问题识别
根据Intellij IDEA控制台输出,Tomcat Catalina Log出现乱码,因此可以将问题定位到Tomcat上。那么,我们看看Tomcat控制台是否出现乱码
果然,是Tomcat输出时出现问题。
查看系统编码格式,936代码GB格式
如下代码页和编码格式对应关系
代码页 国家(地区)或语言 437美国 708阿拉伯文(ASMO 708)720阿拉伯文(DOS)850多语言(拉丁文 I) 852中欧(DOS) - 斯拉夫语(拉丁文 II) 855西里尔文(俄语) 857土耳其语 860葡萄牙语 861冰岛语 862希伯来文(DOS)863加拿大 - 法语 865日耳曼语 866俄语 - 西里尔文(DOS) 869现代希腊语874泰文(Windows)932日文(Shift-JIS)936中国 - 简体中文(GB2312)949韩文950繁体中文(Big5)1200 Unicode 1201 Unicode (Big-Endian)1250 中欧(Windows)1251 西里尔文(Windows)1252 西欧(Windows)1253 希腊文(Windows)1254 土耳其文(Windows)1255 希伯来文(Windows)1256 阿拉伯文(Windows)1257 波罗的海文(Windows)1258 越南文(Windows)20866 西里尔文(KOI8-R)21866 西里尔文(KOI8-U)28592 中欧(ISO)28593 拉丁文 3 (ISO)28594 波罗的海文(ISO)28595 西里尔文(ISO)28596 阿拉伯文(ISO)28597 希腊文(ISO)28598 希伯来文(ISO-Visual)38598 希伯来文(ISO-Logical)50000 用户定义的50001 自动选择50220 日文(JIS)50221 日文(JIS-允许一个字节的片假名)50222 日文(JIS-允许一个字节的片假名 - SO/SI)50225 韩文(ISO)50932 日文(自动选择)50949 韩文(自动选择)51932 日文(EUC)51949 韩文(EUC)52936 简体中文(HZ)65000 Unicode (UTF-7)65001 Unicode (UTF-8)
二、解决问题
用Notepad++打开Tomcat安装源码conf文件夹下的logging.properties文件。把UTF-8改为GBK。修改如下############################################################.apache.juli.AsyncFileHandler.level = .apache.juli.AsyncFileHandler.directory = ${catalina.base}/.apache.juli.AsyncFileHandler.prefix = .apache.juli.AsyncFileHandler.encoding = .apache.juli.AsyncFileHandler.level = .apache.juli.AsyncFileHandler.directory = ${catalina.base}/.apache.juli.AsyncFileHandler.prefix = .apache.juli.AsyncFileHandler.encoding = .apache.juli.AsyncFileHandler.level = .apache.juli.AsyncFileHandler.directory = ${catalina.base}/.apache.juli.AsyncFileHandler.prefix = .apache.juli.AsyncFileHandler.encoding = GBK4host-.apache.juli.AsyncFileHandler.level = FINE4host-.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs4host-.apache.juli.AsyncFileHandler.prefix = host-manager.4host-.apache.juli.AsyncFileHandler.encoding = GBKjava.util.logging.ConsoleHandler.level = FINEjava.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatterjava.util.logging.ConsoleHandler.encoding = GBK
重新启动Tomcat,乱码问题解决
附加:还有一个方法。是基于Intellij IDEA本身的问题。
第一步:修改 idea中的vmoptions配置文件:
进入intellij idea安装目录,找到bin文件夹下面idea64.exe.vmoptions和idea.exe.vmoptions这两个文件分别在这两个文件中添加:-Dfile.encoding=UTF-8
第二步:修改 idea中的FileEncodings:
第三步:修改Tomcat中的VM options
在Tomcat图标下拉框,选择Edit Configurations
第四步:重启Intellij idea