Flash+BlazeDS+Spring+MySQL 中文乱码问题
在此环境下解决中文乱码问题,从前台到数据库,最好使用统一的UTF8编码。这里列出的个环节并不是都要设置,可以一步一步来查。如果是数据库中有乱码,先试一,如果是FLEX显示有问题,看三、四。 一、MySQL乱码 如果在数据库中查看的中文也是乱码,那先检查MySQL的设置。 1、建立的表格使用UTF8字符集: CREATE TABLE `table` ( ? `Id` int(11) NOT NULL auto_increment, ? ….. ? `createTime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, ? PRIMARY KEY? (`Id`) ) ENGINE=InnoDB? DEFAULT CHARSET=UTF8; 2、my.ini设置默认字符集: character-set-server=utf8 default-character-set=utf8 可用show variables like 'character%';来查看MySQL字符编码相关的变量值。 二、Spring定义datasource 在这指的是定义在bean中的datasource的连接url。datasource定在在(/WEB-INF/spring/infrastructure-config.xml) <bean id="mysqlDS" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> ? 三、文件的编码 不管是java还是flex项目,代码文件格式都使用UTF8 在project>properties>Resource里设置Text file encoding为utf-8 ? 四、Flash端,设置flash.system.System.useCodePage=true; “flash.system.System.useCodePage它决定使用哪个代码页来解释外部文本文件。当此属性设置为 ? 五、Tomcat设置 /tomcat/conf/server.xml <Connector port="8400" protocol="HTTP/1.1" connectionTimeout="20000"? URIEncoding="UTF-8" redirectPort="9400"/> ? 六、Java端 给WEB.XML添加一编码转换的过滤器。 <filter> ?? <filter-name>Character Encoding Filter</filter-name> ?????? <filter-class>edu.lltang.characterEncodingFilter</filter-class> ????????? <init-param> ?????????????? <param-name>encoding</param-name> ?????????????? <param-value>UTF-8</param-value> ????????? </init-param> ????? </filter> <filter-mapping> ???? <filter-name>Character Encoding Filter</filter-name> ???? <url-pattern>/*</url-pattern> </filter-mapping> ? edu.lltang.characterEncodingFilter.java public class characterEncodingFilter implements Filter { ?? private FilterConfig filterConfig = null; ?? public void destroy() {} ?? @Override ?? public void doFilter(ServletRequest arg0,ServletResponse arg1,FilterChain arg2) throws IOException,ServletException { ????? arg0.setCharacterEncoding(filterConfig.getInitParameter("encoding")); ????? arg2.doFilter(arg0,arg1); ?? } ?? @Override ????? public void init(FilterConfig arg0) throws ServletException { ???????? this.filterConfig = arg0; ????? } } ? 七、XML 如果用到了XML来交换数据,记得在XML中显示指定编码。<?xml version="1.0" encoding="utf-8"?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |