2、乱码原因
浏览器中输入地址 –> 浏览器对中文进行编码 –>发送到服务器 ->服务器进行解码
如果浏览器编码和服务器解码用的字符集不一致就会发生乱码问题。
3、乱码的解决
1)浏览器访问
浏览器默认使用UTF-8编码(IE默认GBK当然可以通过meta标签设置)
<meta http-equiv="content-type" content="textml; charset=gbk"/>
服务器(Tomcat)默认使用iso-8859-1解码。iso-8859-1是不支持中文的,也就是说不做处理,中文是一定乱码的。
Servlet代码处理:
String user_Name = new String(userName.getBytes("ISO-8859-1"), "UTF-8");
GET方式解决:
单纯设置request.setCharacterEncoding("UTF-8");是没有用的,所以我们把默认的iso-8859-1编码改成UTF-8,在TOMCAT的配置文件的server.xml中更改:
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
添加URIEncoding=UTF-8
POST方式解决:
比如表单提交,在Servlet中设置request.setCharacterEncoding("UTF-8");就能很好的解决。
在servlet设置响应编码试
resp.setContentType("textml;charset=utf-8");//设置响应编
浏览器中输入地址 –> 浏览器对中文进行编码 –>发送到服务器 ->服务器进行解码
如果浏览器编码和服务器解码用的字符集不一致就会发生乱码问题。
3、乱码的解决
1)浏览器访问
浏览器默认使用UTF-8编码(IE默认GBK当然可以通过meta标签设置)
<meta http-equiv="content-type" content="textml; charset=gbk"/>
服务器(Tomcat)默认使用iso-8859-1解码。iso-8859-1是不支持中文的,也就是说不做处理,中文是一定乱码的。
Servlet代码处理:
String user_Name = new String(userName.getBytes("ISO-8859-1"), "UTF-8");
GET方式解决:
单纯设置request.setCharacterEncoding("UTF-8");是没有用的,所以我们把默认的iso-8859-1编码改成UTF-8,在TOMCAT的配置文件的server.xml中更改:
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
添加URIEncoding=UTF-8
POST方式解决:
比如表单提交,在Servlet中设置request.setCharacterEncoding("UTF-8");就能很好的解决。
在servlet设置响应编码试
resp.setContentType("textml;charset=utf-8");//设置响应编