我正在使用Pyramid和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)
我需要解决这个问题?
编辑:
comment是一个“MEDIUMTEXT”列,MySQL类型。
答案 0 :(得分:4)
您的comment
列很可能属于Unicode
类型而不是String
。
答案 1 :(得分:4)
检查数据库的表是否使用unicode以外的编码进行编码。
此外,如果您希望您的评论可以从phpMyAdmin(或您用于连接数据库的任何内容)中读取,则应附加:
字符集= UTF8&安培; use_unicode = 0
到应用程序配置文件中的连接字符串
所以你有mysql:// user:pass @ localhost / dbname?charset = utf8& use_unicode = 0