2011-10-31 78 views
0

我使用的金字塔和SQLAlchemy的,但下面的簡化代碼:的Unicode與金字塔,SQLAlchemy的

u = u"\u201C" 

m = M() 
m.comment = u 
m.user_id = 1 
session.add(m) 
session.commit() 

給了我一個

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256) 

我需要做什麼來解決這個問題?

編輯:

註釋是 「MEDIUMTEXT」 一欄,MySQL的類型。

+0

你能張貼類'M'的定義是什麼? –

回答

4

檢查數據庫的表是否使用unicode以外的編碼進行編碼。

另外,如果你想你的意見是從phpMyAdmin的(或任何你正在使用連接到您的DB)可讀的,你應該追加?

的charset = UTF8 & use_unicode = 0

到您的連接字符串的應用程序配置文件

所以你必須在mysql://用戶:通過@本地/ DBNAME的charset = UTF8 & use_unicode = 0

+0

我也會加上chec – alonisser

4

很有可能您的comment列應爲Unicode而不是String