本文针对tomca部署到idea出现乱码问题提供解决方法,主要包括:运行tomcat时cmd命令框乱码,运行tomcat时控制台乱码,运行tomcat日志乱码,响应中文乱码,页面请求乱码的解决。
一、运行Tomcat命令框乱码问题以及idea控制台乱码问题
如下图:
这里出现乱码的原因是由于我电脑命令窗口的编码是GBK,而tomcat的编码是utf-8(可以在配置文件中修改)
1.找到tomcat文件夹位置,这里我的tomcat服务器文件存到了D盘
2.打开,进入conf这个文件夹,如下图
3.找到logging.properties这个文件,以记事本的方式打开(其它打开方式也可以)
4.将java.util.logging.ConsoleHandler.encodinUTF-8改为java.util.logging.ConsoleHandler.encoding = GBK(位置在该文件顶部)
按下图所示修改
这里改为GBK,如下图,修改后记得保存修改
5.运行startup.bat
乱码问题解决,如下图
同理,如果你的电脑命令框的编码是utf-8只需把你的tomcat配置文件改为和你命令框对应的编码即可
6.此方法也可以解决idea控制台的乱码问题
如果按上述方法配置好文件后,idea控制台(注意,是idea的控制台)仍然乱码,这是由于你idea控制台的默认编码可能被你修改过
按下图修改即可
File->Settings->Editor->General->Console,将控制台默认编码改为GBK(推荐改成GBK)
至此,控制台乱码问题解决
二、运行Tomcat日志乱码问题
在运行tomcat时,日志信息出现乱码,如下图所示
1.打开logging.properties这个文件(参考 一、运行Tomcat命令框乱码问题 找到文件位置)
2.将1catalina.org.apache.juli.AsyncFileHandler.encoding = 改为GBK如下图
3.重新运行服务器,查看日志,乱码问题解决
三、响应中文乱码
1.如图,在页面中输出中国两个汉字
出现了乱码
2.只需在代码中加入一行代码即可
这行代码用于解决请求乱码,最好加在过滤器中,能够解决全工程的请求乱码问题
重新部署tomcat,运行该servlet,乱码问题解决
如果你加了这行代码,输出结果仍为乱码,可能你改变过idea的文件默认编码,idea的默认编码配置最好不要随意修改。
按照我的步骤将文件默认编码修改回来
File->Setting->File Encodings
这里只是把idea默认的编码设置修改回来,再次建议不要更改idea的默认编码配置
四、请求中文乱码
这里提交上图表单,如下图TestServlet用于获取请求的参数并输出在控制台
注意,当表单为post请求时且输入了中文,当获取请求的参数并输出在控制台就会出现乱码
如下图
只需在输出获取的请求参数前加上一行代码即可解决乱码问题,如下图
至此请求中文获取参数乱码问题解决,同响应中文乱码一样,建议将这行代码加入到过滤器当中。
欢迎各位大佬指错与补充。