Pyramid与SQLAlchemy中的Unicode
我正在使用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中的一种数据类型。
2 个回答
4
你可能需要把你的 comment
列的类型改成 Unicode
,而不是 String
。
4
检查一下你的数据库表是否使用了除了unicode以外的编码方式。
另外,如果你希望在phpMyAdmin(或者你用来连接数据库的其他工具)中能正常阅读你的评论,你需要在应用程序的配置文件中的连接字符串后面加上:
?charset=utf8&use_unicode=0
这样你的连接字符串就应该是这样的格式:mysql://user:pass@localhost/dbname?charset=utf8&use_unicode=0