Nokogiri 中文乱码解决技巧
Nokogiri在抓取网页操作性和速度方面的确非常棒,但中文乱码一直让很多人头痛,老宋最近在写一个抓取器的时候做了一个总结,汇总成6条提示,如果你也遇到乱码问题,不妨试一下:)
提示1:在文件头指定程序编码
在***.rb头上添加,注意:一定要在第一行,中间添加无效
#coding: utf-8
提示2:url有中文要进行urlencode编码
url=URI.escape("http://g.cn?q=中国")
提示3:显式设置要抓取目标的编码
doc = Nokogiri::HTML.parse(open("http://rubyer.me/"), nil, "UTF-8")
提示4: 使用Iconv.iconv(to_encoding,from_encoding,str_to_conv)手动转换编码
puts Iconv.iconv("UTF-8", "GBK", doc)
提示5: 如果不确定目标是什么编码,Ruby1.9开始可以用String类内置的encoding来得到编码。
puts Iconv.iconv("UTF-8", doc.to_s.encoding.to_s, doc)
提示6: 使用//IGNORE忽略无法转换的字符
Iconv.iconv("UTF-8//IGNORE", "GBK//IGNORE", doc)
以上只是个人的一些总结,如果你有其它方法,不妨发出来一起分享
我来啦,顶顶你
不错 来一次就不一样的感觉了