请求乱码产生的原因?
浏览器用什么码表来打开表单页面就用什么编码来发送数据.当前我们的注册页面指定了utf-8来打开
这就决定了浏览器时用utf-8打开的页面,浏览器在提交表单时用utf-8编码的
而tomcat默认情况下会使用iso8859-1来进行解码
我们指定全世界的码表都兼容iso8859-1,所以英文处理时没有问题的
但是iso8859-1中并没有中文,iso88559-1对于无法处理的字节都使用?替代,所以我们看到的都是?
如何处理get请求产生的乱码
由于客户端发送那个时使用的时utf-8编码而服务器用iso8859-1解码造成了乱码啊,虽然字符已经乱掉了,但底层的字节任然是正确的,我们只要将乱码字符getBytes(“iso-859-1”)转换为字节,就是正确的字节,再将这些字节new String(bytes,“utf-8”)按照正确的码表解码,就可以转换回正确的字符了,从而解决了乱码
如何处理响应乱码?
通过response.seHeader("Conten-Type:,“text/heml;charset=utf-8”)方法,通知服务器发送数据时的码表;通过reponse.setCharacterEncoding(“utf-8”)方法,通知浏览器解析时使用的码表.量码相同就不会由乱码了
response提供了setContentType("text/heml;charset=UTF-8:)快捷方法,再它的底层,回同时做上面两件事,所以可以一行代码解决response产生的乱码问题