Servlet的request乱码问题,请问为什么utf-8导致中文乱码,而修改成GBK却可以?

浏览器是Chrome谷歌浏览器。IDEA编辑、web.xml、html文件的编码都设置为UTF-8,且sevlet文件中doPost也写了request.setCharacterEncoding("UTF-8"); 但System.out.println(request.getParameter("name"));打印出来永远是��
我突发奇想,仅仅修改了request.setCharacterEncoding("GBK"); 一处,结果打印出来就是正常的中文!!
utf-8应该是支持中文的啊,请问为什么这里utf-8就不行呢?

有可能你的控制台设置的是GBK,或者加个虚拟机参数-Dfile.encoding=UTF-8

说明你客户端与服务端编码不一致,respnse.setHeader("content-type","text/html;charset=UTF-8"); ,加上这句试试

最终解决方案就是在编辑配置-Tomcat中的虚拟机参数写上 -Dfile.encoding=UTF-8就成功了!感谢热心网友