0 0

Nokogiri 乱码的问题5

url="http://datacenter.mep.gov.cn/report/air_daily/air_dairy.jsp?city=&startdate=2011-11-15&enddate=2011-11-15&lang=&page=4"

   file=open(url,'r:UTF-8');
    
       #doc = Nokogiri::HTML(open(url))  
    doc = Nokogiri::HTML(file )  
     doc.meta_encoding='UTF-8' 


然后输出是乱吗,
html是utf8编码的
2011年11月16日 09:38

3个答案 按时间排序 按投票排序

0 0

Nokogiri 中文乱码解决汇总


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)

2011年11月16日 13:40
0 0

#encoding: utf-8
class Item < ActiveRecord::Base
  def Item::load_page
    require 'open-uri'
    url="http://datacenter.mep.gov.cn/report/air_daily/air_dairy.jsp?city=&startdate=2011-11-15&enddate=2011-11-15&lang=&page=4"  
    doc = Nokogiri::HTML.parse(open(url), nil, "UTF-8")   
    doc.css('.report1_2')     
  end
end




Nokogiri 中文乱码的几种情况

你的问题ms是文中说的第二种情况,只不过你的目标网站是utf-8

试试还不行,再说话

2011年11月16日 11:48
0 0

参考http://2015.iteye.com/blog/557485试试

2011年11月16日 10:44

相关推荐

Global site tag (gtag.js) - Google Analytics