(转)关于中文乱码的一些处理方法

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&amp;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>