首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >UnicodeEncodeError:“拉丁语-1”编解码器无法对字符进行编码

UnicodeEncodeError:“拉丁语-1”编解码器无法对字符进行编码
EN

Stack Overflow用户
提问于 2010-10-15 21:57:08
回答 5查看 232.8K关注 0票数 111

当我试图在数据库中插入一个外来字符时,什么原因会导致这个错误?

代码语言:javascript
复制
>>UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256)

我该如何解决它呢?

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2010-10-15 22:14:24

我希望你的数据库至少是UTF-8。然后,在尝试将其放入数据库之前,您将需要运行yourstring.encode('utf-8')

票数 21
EN

Stack Overflow用户

发布于 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可能导致的问题,并提出了如何处理它的建议,以及指向示例代码的链接!

票数 4
EN

Stack Overflow用户

发布于 2017-06-15 07:21:17

SQLAlchemy用户可以简单地将他们的字段指定为convert_unicode=True

示例:sqlalchemy.String(1000, convert_unicode=True)

SQLAlchemy将简单地接受unicode对象并返回它们,处理编码本身。

Docs

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3942888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档