【发布时间】:2010-10-29 17:15:35
【问题描述】:
在某些情况下,当我使用open 在 Ruby 中获取网页时,该页面的内容存在编码错误。示例:
open("http://www.google.com.br").read
ç 和 ã 等字符被 ? 替换
我怎样才能得到正确的字符?
【问题讨论】:
-
你的角色使用 utf-8 吗?
标签: ruby character-encoding open-uri
在某些情况下,当我使用open 在 Ruby 中获取网页时,该页面的内容存在编码错误。示例:
open("http://www.google.com.br").read
ç 和 ã 等字符被 ? 替换
我怎样才能得到正确的字符?
【问题讨论】:
标签: ruby character-encoding open-uri
这似乎有效:
require 'iconv'
i = Iconv.new('UTF-8','LATIN1')
i.iconv(open('http://google.com.br').read)
【讨论】:
在这里运行 Ruby 1.9.2。您的代码生成的 HTML 包含如下文字:
Configura\xE7\xF5es
所以至少在我的工作机器上(Vista,使用 Windows CMD 控制台),它返回 HTML 转义字符。
另外,据我所知,Ruby 1.9.2“几乎”完全兼容 Unicode,所以我猜你不应该遇到 UTF-8 问题,除非你的控制台无法处理打印 UTF-8 字符。
希望对您有所帮助。
【讨论】: