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決定。




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