我在使用Scrapy时遇到了密码问题,希望有人能帮助我。在
item['title'] = html.xpath('.//h5/text()')
item['title'] = item['title'].extract()[0].encode('utf-8', 'replace')
它的结果是Namontana \xe2\x80\x93 Une attaque \xc3\xa0 main arm\xc3\xa9e avort\xc3\xa9e
。我把所有的项目都保存在数据库上(现在是mysql)。在
现在我想把所有这些项目显示在一个网站上,但我的问题是我无法将\xe2转换为可视字符。在
我已经试过了:
# -*- coding: utf-8 -*-
htmlentities
或utf8_decode
函数unicode(response.body.decode(response.encoding)).encode('utf-8')
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
添加到我的HTML页面目前,我唯一的选择是使用自定义函数替换所有char(explainhere),但我认为它们是更好的解决方案。在
提前谢谢你的帮助。在
我的解决办法是
在每个文件(spider、pipeline等…)上,将字符串从unicode转换为utf8[.encode('utf-8','replace')]
问题来自我的数据库编码。现在它是utf8_unicode_ci,它工作得很好。在
e28093是十六进制的,用于短划线的utf8编码:http://www.fileformat.info/info/unicode/char/2013/index.htm
c3a0和c3a9代表重音字母:
我不知道是什么提供了“\x”,但这是hex的一个常见的引入。在
如果SELECT出现\x等,那么这不是存储数据的好方法。如果
SELECT HEX(column)
出现了...e28093...
,那就好了。在相关问题 更多 >
编程相关推荐