(转)关于中文乱码的一些处理方法
1 struts2配置
struts2在配置struts.properties文件中加上
struts.i18n.encoding=UTF-8
或者在struts.xml里加上
<constant name="struts.i18n.encoding" value="UTF-8" />
2 数据库
2.1 mysql的表的编码方式,其DDL应该为: ENGINE=InnoDB DEFAULT CHARSET=utf8; 可以使用show create table tbname查看.
2.2 安装mysql数据库时就应该以utf8编码默认安装查看mysql数据库默认编码方式可以在其目录下my.ini文件中找到mysql和mysqld下default-character-set值为utf8或者在mysql数据库命令行下以"/s;"查看.
3 页面
每个页面上加上
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
这样在jsp页面里,点右键,查看编码方式则为UTF-8.
4 jdbc连接
设置characterencoding为UTF-8 如
jdbc.mysql.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF8
5 tomcat
为了保证get/post数据都采用相同的UTF8编码,我们在server.xml中进行了如下设置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
6 Spring
若使用Spring, 则在web.xml里面配置spring的编码过滤器
<filter> <filter-name>CharacterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>