字符乱码问题的解决办法
简单的解释发生的原因
- 由于计算机中的数据都是以二进制形式存储的,因此,当传输文本时,就会发生字符和字节之间的转换。
- 字符与字节之间的转换是通过查码表完成的,将字符转换成字节的过程称为编码,将字节转换成字符的过程称为解码。
- 如果编码和解码使用的码表不一致,就会导致乱码问题。
Response中的解决办法
方式1
//设置HttpServletResponse使用utf-8编码
response.setCharacterEncoding("utf-8");
//通知浏览器使用utf-8解码
response.setHeader("Content-Type","text/html;charset=utf-8");
方式2
//包含第一种方式的两个功能
response.setContentType("text/html;charset=utf-8");
Request中的解决办法
POST请求下
request.setCharacterEncoding("utf-8"); //特别注意,这一行代码要在最前面
GET请求下
将接收到的字符进行一个编码转换如下
String username = new String(username.getBytes(),"utf-8")