a) Request
i. 乱码问题
- 用get方式发送的请求时,网页使用什么什么编码浏览器就用什么编码发送数据,当然网页可以显示中文,那当然是使用的是UTF-8,所以发送过去的编码就是UTF-8,那么Servlet解码也就要用UTF-8来解码,但默认是ISO8859-1来解码,所以就会乱码,但即使你设置了编码也还是会用ISO8859-1来解码,所以要用这个编码把它转换为原生数字的状态再来用UTF-8来解码.
Eg: byte[] b2 = req.getParameter("pass").getBytes("iso8859-1");
String s2 = new String(b2,"UTF-8");
System.out.println(s1);
- 用post方式发送请求时也是,网页使用什么什么编码浏览器就用什么编码发送数据,,但不同的是设置了用UTF-8来解码就会用UTF-8来解码了
b) Response
i. 乱码问题
- 编码的作用就是把显卡打印的文字图像与计算机底层的二进制流相关联起来,这样,我们在计算机上打出一个字,计算机就可以根据编码表来看这个字符的二进制是多少,就可以传输了. 所以在服务端我们要设置我们输入的字符图像是要用什么编码格式来查找二进制码,再传输,而且还要告诉浏览器要用什么格式来读取传输过去的的二进制数据.
- 解决这种乱码有两种办法,一种是用字符流,然后设置字符编码,一种是字节流,不过其实原理都一样,都是用UTF-8编码把字符图像设置为正确的映射到二进制的编码.