加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash+BlazeDS+Spring+MySQL 中文乱码问题

发布时间:2020-12-15 18:23:57 所属栏目:百科 来源:网络整理
导读:在此环境下解决中文乱码问题,从前台到数据库,最好使用统一的UTF8编码。这里列出的个环节并不是都要设置,可以一步一步来查。如果是数据库中有乱码,先试一,如果是FLEX显示有问题,看三、四。 一、MySQL乱码 如果在数据库中查看的中文也是乱码,那先检查My

在此环境下解决中文乱码问题,从前台到数据库,最好使用统一的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">
??????? <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
??????? <property name="url" value="jdbc:mysql://localhost:3306/Web2Test?useUnicode=true&amp;characterEncoding=utf8"/>
??????? <property name="username" value="root" />
??????? <property name="password" value="admin123456" />
??? </bean>

?

三、文件的编码

不管是java还是flex项目,代码文件格式都使用UTF8

在project>properties>Resource里设置Text file encoding为utf-8

?

四、Flash端,设置flash.system.System.useCodePage=true;

“flash.system.System.useCodePage它决定使用哪个代码页来解释外部文本文件。当此属性设置为 false 时,会将外部文本文件解释为 Unicode。(保存这些文件时,必须使用 Unicode 对其进行编码。)当此属性设置为 true 时,将使用运行该应用程序的操作系统的传统代码页来解释外部文本文件。useCodePage 的默认值是 false。”

?

五、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"?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读