Servlet中文乱码问题
使用Servlet的时候,遇到了乱码问题,加入了以下代码后得到解决,但是少了任何一条都仍然是乱码,因此探寻一下究竟是哪里出了问题。
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset:utf-8");
提交字符串均为:中文ABC
req.setCharacterEncoding("utf-8")
,缺失时显示内容为:ä¸æ–‡ABC。
代码本身是设置服务器端收到请求的解码格式,所以不设置的话会按照默认的"ISO-8859-1"进行解码,而编码方式却是"utf-8",所以会出现错误。
resp.setCharacterEncoding("utf-8");
,缺失时显示内容为:??ABC。
这一行代码是设置服务端响应请求的编码格式,所以错误产生原因则是由于服务器按照默认的"ISO-8859-1"进行编码,客户端则用"utf-8"解码。
resp.setContentType("text/html;charset:utf-8");
,缺失时显示内容为:涓枃ABC。
这一行代码是设置响应HTML文件的编码格式,错误产生原因是由于Chrome按照本地的默认编码“GBK”进行解码,使用了一个更改浏览器编码的插件将编码改成"utf-8"后得到解决。