ruby中的编码问题

ruby中的编码问题

  • 需求

    从网站中抓取网页保存的本地,再解析数据,解析数据时需要频繁调试,每次都要访问网络,速度比较慢,就想到先把网页保存的本地。然后从本地读取。

  • 问题

    保存到本地时总是或出现编码问题,我用的是sublime,无法将网页内容输出到控制台,各种折腾编码之后,发现是sublime的问题,sublime只能输出utf-8 的编码方式。其他的格式要么是输出乱码,要么是不输出,要么是只输出部分内容。

  • 解决办法

    既然知道了是sublime 的问题那么直接按照原来网页的编码格式写进文件就行了,不用管sublime控制台输出的内容是否正常,只要写到文件的内容是正常的就行了。

    下面是下载html网页的源码,可以当做包来调用

  def Page.down_html(page_url,file_name,ec='gb2312')
  		if page_url.class.to_s == "String"
  			begin
  				page=Mechanize.new.get(page_url)
  			rescue Exception => e
  				puts "#{page_url}不能访问"
  				return
  			end
  		elsif page.class.to_s != "Mechanize::Page"
  			puts "不可解析的类型"
  			return
  		end
  		page.encoding=ec
  		File.open(file_name,"w+") do |io|
  			io.puts page.body
  			puts "down succcess!"
  		end
  	end

posted @ 2017-06-12 18:32  -梦里不知身是客  阅读(418)  评论(0编辑  收藏  举报