同一个程序,在打印网页的 body 内容的时候,中文字段用 puts 都可以显示出来,用 pp 却显示成两种编码。这是因为什么? 已其中 key words 的部分内容为例: ruby2.1.5 环境下 pp 的显示结果:\xE5\xBC\x80\xE5\x8F\x91\xE8\x80\x85 这是 ASCII-8BIT 的编码吧 ruby1.8.7 环境下 pp 的显示结果:\345\274\200\345\217\221\350\200\205 puts 都能显示成中文:“开发者”
#!/usr/bin/env ruby
require "net/http"
require "pp"
require "uri"
custom_h = {}
agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0"
custom_h["User-Agent"] = agent
uri = URI("http://www.cnblogs.com")
pp uri
pp uri.host
pp uri.port
path = uri.path.empty? ? "/" : uri.path
pp path
http = Net::HTTP.new(uri.host, uri.port)
resq,data = http.get(path, custom_h)
headers = {}
resq.each {|key, val| headers[key] = val}
pp resq.body