提交form表单时后台乱码问题解决

今天学习文件上传时用到了form表单的提交,但是在后台看到提交的中文成了乱码。

此时,发现eclipse的工作区和工程的编码方式均为“UTF-8”,遂排除了编码的错误。

具体的原因

经多方查找,发现是Tomcat的解码方式默认是ISO-8859-1,而浏览器对中文数据的默认编码方式是“UTF-8”。因此,解码出现了乱码的情况。

问题的解决

在Servlet容器接收数据后,添加一行转码命令,比如:

name = fileItem.getString();
name = new String(name.getBytes("iso-8859-1"),"utf-8");  //更改编码方式

address = fileItem.getString();
address = new String(address.getBytes("iso-8859-1"),"utf-8");  //更改编码方式

或者手动设置编码方式设为“ISO-8859-1”,解码方式为“UTF-8”:

address = fileItem.getString();
address = java.net.URLEncoder.encode(address,"ISO-8859-1");
address = java.net.URLDecoder.decode(address,"UTF-8");

上一篇:leetcode268最大整除子集


下一篇:vs2015中无法设置Qt版本,qt project setting 是灰色,Qt无法编译ui文件