Nokogiri 中文乱码解决技巧

八 6th, 2011

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)

以上只是个人的一些总结,如果你有其它方法,不妨发出来一起分享

>>原创文章,欢迎转载。转载请注明:转载自Ruby迷,谢谢!
>>原文链接地址:Nokogiri 中文乱码解决技巧
  1. wps
    八 7th, 201118:44

    我来啦,顶顶你

  2. xiaoxiaopin
    八 7th, 201118:09

    不错 来一次就不一样的感觉了

Cancel reply