ruby on Rails 中从 open-uri 获取的内容中存在编码错误

发布于 2024-09-29 18:45:59 字数 215 浏览 8 评论 0原文

在某些情况下,当我使用 open 在 Ruby 中获取网页时,页面内容存在编码错误。示例:

open("http://www.google.com.br").read

çã 这样的字符被 替换?

如何获得正确的字符?

In some cases when I use open to get a web page in Ruby the content of the page has an encoding error. Example:

open("http://www.google.com.br").read

Chars like ç and ã are replaced by ?

How can I get the right chars?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抱猫软卧 2024-10-06 18:45:59

这似乎有效:

require 'iconv'
i = Iconv.new('UTF-8','LATIN1')
i.iconv(open('http://google.com.br').read)

this seems to work:

require 'iconv'
i = Iconv.new('UTF-8','LATIN1')
i.iconv(open('http://google.com.br').read)
别低头,皇冠会掉 2024-10-06 18:45:59

此处运行 Ruby 1.9.2。您的代码生成的 HTML 包含如下文字:

Configura\xE7\xF5es

因此,至少在我的工作计算机上(Vista,使用 Windows CMD 控制台),它返回 HTML 转义字符。

另外,据我所知,Ruby 1.9.2“几乎”完全兼容 Unicode,因此我猜测您不应该遇到 UTF-8 问题,除非您的控制台无法处理打印 UTF-8 字符。

希望有帮助。

Running Ruby 1.9.2 here. Your code yields HTML which contains words like this:

Configura\xE7\xF5es

So on my work machine at least (Vista, using Windows CMD console), it returns HTML escaped characters.

Also, as far as I know, Ruby 1.9.2 is "almost" fully Unicode compliant, so I am guessing you shouldn't have UTF-8 issues unless your console cannot handle printing UTF-8 characters.

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文