1、查看页面是否使用utf-8编码
①jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
②html页面:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2、在数据库连接url后面加上unicode参数
①使用的是非properties文件(如在hibernate.cfg.xml中配置):
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8
</property>
②使用的是properties文件(重点):
jdbcUrl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8
注意,如果你使用的是properties文件配置数据库的连接信息,参数连接一定要用&,不要使用& amp;,不然会失效!!!
3、在struts.xml中使用国际化
<constant name="struts.i18n.encoding" value="UTF-8" />
4、使用全局中文乱码过滤器
可参考我之前写的文章:http://blog.csdn.net/csdn_lqr/article/details/52901898
个人感悟:
实际开发中,如果使用的是ssh框架,到了第2步基本不会出现中文乱码问题了,如果使用的是servlet的话,建议使用全局中文乱码过滤器。说白了,中文乱码问题就是编码不一致导致的,只要保证了前端(页面使用meta标记utf-8),后端(对参数的解析、与连接库的连接),和数据库(数据库的编码格式)都使用统一的编码,一般不会出现乱码问题。