在web开发过程中经常会遇到中文乱码问题,一般在解决时统一为utf-8,下面来总结一下解决乱码问题的方法:
1.JSP页面中设置,JSP页面头部<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
HTML页面中设置:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2.过滤器处理:
public class FilterConvert implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println("FileterCode start!");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
// 递交扼制到下一个过滤器
chain.doFilter(req, resp);
}
}
3.数据库的编码也要设置为utf-8,有这么几种形式:
(1)使用JDBC连接时,
String driverName = "com.mysql.jdbc.Driver";
String userName = "root";
String userPasswd = "";
String dbName = "ccnudb";
String url = "jdbc:mysql://localhost/" + dbName + "?user=" + userName
+ "&password=" + userPasswd+"&useUnicode=true&characterEncoding=utf-8";
Class.forName(driverName).newInstance();
conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
(2)在Hibernate中数据库可以自己设置为utf-8
4.Tomcat中设置编码:
在使用Tomcat 文件下的conf文件中找到server.xml文件,在其中找到下面代码,将红色部分加上。
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding= "UTF8"/>
目前我就总结有这几种方式,大家有比较好的可以介绍一下,相互学习!