抓取到的网页写入数据库后是乱码的解决方法
忘了在哪看到的了,在抓到网页写到数据库时出现乱码,主要是因为数据库的编码方式与网页的不一样,需要将抓到的网页先转一下码,utf8格式好像更普遍一点,在这里简单记一下转码方法和参考资料:
Python中:
因为字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
Python中分析网页的编码格式可以利用chardet,详细的内容在:用chardet判断字符编码的方法
另外一个介绍《python的str,unicode对象的encode和decode方法》
page = urllib2.urlopen(url).read() page = unicode(page, "utf8")
Ruby中:
require 'iconv'
page = Iconv.iconv("GB2312//IGNORE", "UTF-8//IGNORE", page)
Ruby中会提示‘iconv’马上要被淘汰,不推荐使用,可以尝试更好的方法。
其中,加上“IGNORE”是因为有些会转码失败,如果不加会直接退出,加上了好像就ignore了