字符乱码问题的解决办法

简单的解释发生的原因

  • 由于计算机中的数据都是以二进制形式存储的,因此,当传输文本时,就会发生字符和字节之间的转换。
  • 字符与字节之间的转换是通过查码表完成的,将字符转换成字节的过程称为编码,将字节转换成字符的过程称为解码。
  • 如果编码和解码使用的码表不一致,就会导致乱码问题。
    encoding

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")

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器