乱码出现位置
- 数据 “传递”过程中乱码。
- 数据 “展示”过程乱码。
- 数据 “保存”过程乱码。
数据 “保存”过程乱码 ##
- 最终保存到数据库表中的时候,数据出现乱码
- 导致数据库过程中的乱码包括以下两种情况:
** :在保存之前,数据本身就是乱码。
** :保存之前,不是乱码,由于本身数据库不支持简体中文,保存之后出现乱码。
数据 “展示”过程乱码 ##
- 最终显示到网页上的数据出现中文乱码。
**:设置响应的的内容类型,以及对应的编码方式。
response.setContentType("text/html;charset=UTF-8");
** :在页面加上:<%@ page contentType="text/html;charset=UTF-8" language="java" %>
或者<meta content="text/html;charset=UTF-8">
数据 “传输”过程乱码 ##
将数据从浏览器发送给服务器的时候,服务器接收的数据是乱码。(对应是ISO-8859-1编码)。
- 万能方式,既能解决POST请求乱码,又能解决GET请求编码。先将服务器接收的数据采用ISO-8859-1解码,再给定一种支持中文的编码方式重新编码。
String name = request.getParameter("name");
//解码
byte[] bytes = name.getBytes("ISO-8859-1");
//编码
name = new String(bytes,"UTF-8");
- 只支持POST请求,因为只对请求体有效。
request.setCharacterEncoding("UTF-8");
- 专门解决GET请求乱码,修改tomcat目录下conf文件夹下的server.xml
加上URIEncoding="UTF-8"