我是在学习过滤器的时候发现突然浏览器显示的中文成乱码了。折腾一番没有解决,然后我直接新建了一个project,这个项目里只有一个简单的Servlet,Servlet内只简单的输出了两个中文字符。配置Servlet后,直接通过浏览器地址栏不带任何参数的方式请求Servlet,浏览器端显示??。然后在设置
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
后解决了。
为什么呢?我在学习过滤器的那个项目里也这样设置了呀。
最后终于发现,我的项目内的文件使用UTF-8编码的,但是我有两个java文件是从其他地方复制过来的,用的是GBK编码。
在IDEA中->File->File Encodings
点击红框处,将两个文件全部改为UTF-8编码后,问题才得以解决。
我猜测,可能是IDE在编译这些java文件时,文件编码不一致才导致出现这种问题。总之这还是自己给自己挖的坑,记录在此,避免再掉坑。