1.乱码问题出现的原因:
Tomcat默认编码是iso-8859-1,而不是中文的utf-8
2.乱码问题可能出现的地方:
(1)HTML页面中
(2)JSP页面中 (3)页面数据传输中 (4)get请求中 (5)post请求中 (6)数据库中3.相应的解决方法:
(1)HTML页面中:
在<head>标签下更改charset
…… ……
(2)JSP页面中:
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>需要注意的是:pageEncoding是JSP文件本身的编码;contentType的charset是服务器发送给客户端时的内容编码
(3)页面数据传输中
最佳方法是采用编码过滤器来解决。设置一个过滤器转码所有传输数据
encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter
(4)get请求中
获取请求的字符串,然后把整个字符串进行转换(假设原编码为ISO-8859-1)
String param=request.getParameter("param");param = new String(param.getBytes("ISO-8859-1"), "UTF-8");
(5)post请求中
在Servlet页面中添加
response.serCharacterEncoding("UTF-8");
(6)数据库中
在JDBC驱动的URL上添加:
jdbc:mysql://localhost/test?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8