您的当前位置:首页正文

Idea控制台乱码问题解决方案

2024-11-07 来源:个人技术集锦

一个请求从浏览器到服务器是有可能需要进行多次编码的。首先从浏览器开始,报文可以通过Http Header 的Content-Type来制定编码的格式。然后进入Tomcat中,Tomcat会根据Content-Type头进行对应的解码。解码后将请求包转成Servlet传给后台。到了Servlet这个层面,我们可以通过ServletRequest的setCharacterEncoding来修改报文编码。

重点:有时候我们在程序层面修改了编码方式,我们发现控制台仍然是乱码的,这时有可能并不是程序本身问题。对于Idea应用,程序设置完毕后控制台忍然乱码还有两个可能:

1.你的文件本身编码格式不对。

2.JVM的编码格式不对。

在你程序上设置了正确的编码后。如果你的文件编码格式和JVM编码不匹配仍然导致控制台的乱码(有可能你输出到文件不乱码,但是就是控制台是乱码的),因为你在文件上输入中文的时候,虚拟机由于编码和文件编码不同将会错误的理解文件字符字面上的意思,所以输出的时候乱码。

解决办法:首先保证程序设置正确(如设置了req.setCharacterEncoding("utf-8"))。然后检查文件的编码格式(在idea上可以简单的检查右下角)

文件编码格式正确了然后检查JVM的编码(可以调用Charset.defaultCharset()来获得),JVM默认的编码是和操作系统一样的,中文的一般是BGK。可以通过为虚拟机设置-Dfile.encoding=utf-8来设置编码.

显示全文