当我试图在数据库中插入一个外来字符时,什么原因会导致这个错误?
>>UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256)
我该如何解决它呢?
谢谢!
发布于 2010-10-15 22:14:24
我希望你的数据库至少是UTF-8。然后,在尝试将其放入数据库之前,您将需要运行yourstring.encode('utf-8')
。
发布于 2010-10-15 22:02:35
您正在尝试使用无法描述该代码点的编码ISO-8859-1 / Latin-1
来存储Unicode代码点\u201c
。您可能需要更改数据库以使用utf-8,并使用适当的编码存储字符串数据,或者您可能希望在存储内容之前对输入进行清理;即使用something like Sam Ruby's excellent i18n guide。它讨论了windows-1252
可能导致的问题,并提出了如何处理它的建议,以及指向示例代码的链接!
发布于 2017-06-15 07:21:17
SQLAlchemy用户可以简单地将他们的字段指定为convert_unicode=True
。
示例:sqlalchemy.String(1000, convert_unicode=True)
SQLAlchemy将简单地接受unicode对象并返回它们,处理编码本身。
https://stackoverflow.com/questions/3942888
复制相似问题