Python:MySQLdb讀出MYSQL中的中文爲亂碼

原文地址:http://hi.baidu.com/ah__fu/blog/item/57757982eed366ad6d81192e.html


在調試頁面的時候發現,服務器返回的JSON中,中文都成了問號。

難道是json.dumps()這個步驟在轉義的時候不正確,驗證了一下,原來從mysql中讀出的時候就已經是亂碼了!

 

OK,先到MYSQL裏面看看,表裏面的數據究竟是什麼編碼的:

select field_name, hex(field_name) from tab limit 1;

瞭解到是UTF-8編碼。

看來是客戶端不支持UTF-8編碼導致。

把客戶端的編碼打印出來看看:

db = MySQLdb.connect(...)

print db.character_set_name()

顯示了一個杯具的latin1

 

於是我嘗試在構造對象的時候指定字符集:

db = MySQLdb.connect(..., charset='utf8')

搞定!

 

第二種方法是:

db = MySQLdb.connect(..., init_command='set names utf8')


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