解决tomcat中文乱码问题终极大招

前言

  乱码问题是所有开发人员一定会遇到的问题,可惜的是,讲乱码解决方案的人往往讲不到重点。我们都知道引起乱码的原因就是编码不一样导致的。所以我们的终极解决方案就是让程序里的编码和tomcat的编码一致就行。由此引出了我们的第一个问题,tomcat控制台的编码是多少?

tomcat控制台的编码是多少?

  这个问题很多人都会让你去改tomcat的路径下conf/logging.properties配置文件,但是很多人改了也不行,原因就在于我们不知道tomcat控制台所用的编码。以windows平台为例,这样查看
解决tomcat中文乱码问题终极大招_第1张图片
解决tomcat中文乱码问题终极大招_第2张图片

看到了吧?默认是936,也就是GBK,于是我们再看我们在log4j里输出时用的是什么编码。

程序打印时是什么编码?

直接看log4j的配置文件:
解决tomcat中文乱码问题终极大招_第3张图片
发现了什么?是用UTF-8输出的。那不就矛盾了?输出时用UTF-8,解析是用GBK,不乱码才怪。

解决方案

找到问题那就很简单了,要么都改成UTF-8,要么都改成GBK。那就有人要问了,tomcat默认的编码怎么改?答案是在注册表里改。找到注册表

HKEY_CURRENT_USER/Console/Tomcat

解决tomcat中文乱码问题终极大招_第4张图片
解决tomcat中文乱码问题终极大招_第5张图片
切换到十进制,将值改为65001,也就是UTF-8。

你可能感兴趣的:(JAVA,tomcat,乱码,中文,控制台,注册表)