首页 > 代码库 > 乱码问题总结

乱码问题总结

2014-10-10记录:

乱码问题是在10月份接私活时候,存入数据库时出现的,后来查出原因是mysql安装时候设置编码不正确,重装mysql解决。
先debug诊断是前台传后台出现乱码问题,还是存入数据库时候出现的问题。

1项目刚创建,要记得改gbk编码为u8
2前台传后台,web.xml为spring框架配置过滤器,或者servlet设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

<filter> 
    <filter-name>Spring character encoding filter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
        <param-name>encoding</param-name> 
        <param-value>GBK</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>Spring character encoding filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>

3数据库创建的时候设置编码
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
如果sql语句添加是完好的,通过java代码添加是乱码,有可能是项目编码和数据库编码不一致造成的


4服务器操作系统默认编码问题,tomcat的编码是iso8859
    apache-tomcat-6.0.20\conf\server.xml
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8" useBodyEncodingForURI="true"/>
URLEncoding="UTF-8" useBodyEncodingForURI="true"
这两个都要。

乱码问题总结