由于计算机中的数据都是以二进制形式存储的,因此,当传输文本时,就会发生字符和字节之间的转换。字符和字节之间的转换是通过查码表完成的,将字符转换成字节的过程称为编码(这里的编码有点狭义,通俗来说,将信息以二进制存在计算机就叫编码),将字节转换成字符的过程称为解码,如果编码和解码使用的码表不一致,就会导致乱码问题!
HttpServletResponse默认使用ISO8859-1码表
浏览器默认采用GB2312码表
解决代码如下:
//设置HttpServletResponse使用utf-8编码,通知浏览器使用utf-8解码,一行代码搞定
response.setContentType("text/html;charset=utf-8");
注意,要在获取输出流前执行!要在获取输出流之前执行!要在获取输出流之前执行!