2013-12-10 15 views
2

我在UTF-8編碼的MySQL數據庫,但是當我連接到它的SQLAlchemy(Python 2.7版),我回來與他們Latin1的Unicode字符的字符串。SQLAlchemy的返回UTF-8作爲Latin1的字符串

因此,比利時(België屬於)的荷蘭語拼寫出來作爲

'Belgi\xeb' 

而不是

'Belgi\xc3\xab' 

或理想Unicode的對象

u'Belgi\xeb' 

回答

5

根據文檔( http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html#custom-dbapi-args):

如果use_unicode = 1個參數,或charset參數,被作爲連接參數傳遞3210

MySQLdb的將容納的Python Unicode對象。

沒有這個設置,許多MySQL服務器安裝的默認客戶端連接latin1編碼。

您需要使用

create_engine('mysql+mysqldb://HOSTNAME/DATABASE?charset=utf8') 

,而不是僅僅

create_engine('mysql+mysqldb://HOSTNAME/DATABASE') 
相關問題