原文地址: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')