Python Scrapy Unicode编码转换UTF-8问题,scrapyutf-8,关于Python的编码一


关于Python的编码一直是一个痛……半夜研究Scrapy的时候抓取了一下内容,抓取了一些中文内容。都是\u5173\u4e8e的Unicode编码。
我想将取得的内容转成UTF-8正常的显示中文应该怎么做?在Scrapy看得有点晕,Python转编码还好。
表示Scrapy取的好像是list类型不能对该类型进行编码解码吧?
主要是我不知道怎么写这段代码的说……
另,假如我入库MySQL以charset='utf8'不知道会不会正常的转成中文UTF-8而不是Unicode?
查阅了不少资料,有点迷迷糊糊的没看懂,遂到SF问一下~
thanks~

我遇到过一样的问题,可以参考
http://git.oschina.net/ldshuang/imax-spider/commit/1d05d7bafdf7758f7b422cc1133abf493bf55086

List类型你也是要一个一个item地插入数据库,只要对每个item都进行转码操作即可,例如
for ii in itemlist: str = ii.encode('utf-8')
更多scrapy相关的内容,可以看看这个博客,http://tech.my-coffees.com

建议先去弄清楚unicode、UTF、UCS

\u5173\u4e8e 这就是utf8
http://zh.wikipedia.org/wiki/UTF-8

for line in list:    line = unicode(line,"UTF-8")    #do something.. 

这样应该可以把。

为了大家不再百度找答案。这里放上答案:
str=json.dumps(dict(item),ensure_ascii=False)+"\n";
str=unicode.encode(str,'utf-8');

题主还是先搞明白unicode和utf-8是什么关系吧。

我最近用结巴分词也遇到过类似问题,然后上网查最后这样解决的(不过我是中文写入文件的数据库会不会不一样就不知道了):
1.如 @tengyun 所言,对于要输出的元素 a.encode('utf-8')
2.并且在程序的开头加encoding & 重载sys。。。

#encoding=utf-8import sysreload(sys)sys.setdaulftencoding('utf-8')

这个所说的list类型是个什么样子?list里面保存多行所抓取的字符串?那就直接for s in strs取出,encode()为utf-8再保存就行。
或者一个list就是一个抓取的字符串?可python的字符串本质也就是list啊。"".join()试试

编橙之家文章,

评论关闭