【发布时间】:2011-04-11 21:37:24
【问题描述】:
我正在使用 Scrapy 和 Python(作为 Django 项目的一部分)来抓取包含德语内容的网站。我安装了libxml2 作为 Scrapy 选择器的后端。
如果我通过选择器提取单词'Hüftsitz'(这是它在网站上的显示方式),我得到:u'H\ufffd\ufffdftsitz'(Scrapy XPath 选择器返回 Unicode 字符串)。
如果我把它编码成UTF-8,我得到:'H\xef\xbf\xbd\xef\xbf\xbdftsitz'。如果我打印出来,我会得到'H??ftsitz',这是不正确的。我想知道为什么会发生这种情况。
网站上的character-set 设置为UTF-8。我正在将sys.getdefaultencoding 设置为UTF-8 的Python shell 上测试上述内容。使用 Django 应用程序,其中来自 XPath 选择器的数据被写入具有 UTF-8 字符集的 MySQL 数据库,我看到了相同的行为。
我在这里忽略了一些明显的东西吗?任何线索或帮助将不胜感激。
【问题讨论】:
标签: python django unicode utf-8 scrapy