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

一个请求从浏览器到服务器是有可能需要进行多次编码的。首先从浏览器开始,报文可以通过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来设置编码.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值