Flex asSql库在连接MySql时显示中文字符串为乱码的问题

(assql是Flex用于连接MySql的一个开源库,可以从http://code.google.com/p/assql/downloads/list下载到。)

问题:

通过使用assql查询、更新、插入mysql记录时,中文字符都呈现乱码。


网上信息:

通过百度、谷歌一堆解决办法,基本上都是在修改assql源代码,但最新的2.8版本都已经修复,所以改源代码没用。


问题根源:

不在于assql,而在于mysql的字符集设置。

mysql字符集的问题可以参看:http://apps.hi.baidu.com/share/detail/22337180

简言之,就是将mysql上的字符集全都改为utf8,包括表中包含中文字符的每一列的字符集都改为utf8(如果是其它字符集,跟下面三个变量不一致,还是会出问题的)。

其中跟Flex关系最大的是下面3个变量:

character_set_client

character_set_connection

character_set_results    

因为flex跟mysql通信实际上是客户端跟服务器之间的通信,这样的话服务器在收到客户端的请求时,要知道请求过来的字符串是何种编码,这是通过character_set_client知道的,然后mysql要把这种编码的字符串转化为自身能解释的字符串,解释成什么字符串就由character_set_connection决定,最后当需要向客户端返回响应时,Mysql还要知道该以何种编码返回给客户端,这又由character_set_results决定。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章