2011-10-31 80 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