hpricot-UTF-8 中的无效字节序列

发布于 2024-11-27 05:31:07 字数 355 浏览 0 评论 0原文

我已经做了一些搜索,但没有一个可以解决这个特殊的、意想不到的问题。 看看下面的代码:

require 'open-uri'
require 'hpricot'
doc = Hpricot(open("http://www.baidu.com/")) #this web page's encoding is GB2312

我不知道这里发生了什么,你可以在你的irb中看看是否能解决问题

它只是弹出“ArgumentError:UTF-8中的无效字节序列”

我尝试过通过 Iconv 将原始 HTML 转换为 utf-8 但它仍然无法工作

伙计们,我现在真的不知道该怎么办,请帮助我

I already done some searches but none of that can solve this peculiar,unexpected problem.
Just look at the code blow:

require 'open-uri'
require 'hpricot'
doc = Hpricot(open("http://www.baidu.com/")) #this web page's encoding is GB2312

I don't know what's going on here,you can this in your irb to see if you can get the problem

It just pop up "ArgumentError: invalid byte sequence in UTF-8"

I have try to convert the original HTML into utf-8 by Iconv but it still won't work

Guys,I really don't what to do now,please help me

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

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

发布评论

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

评论(2

妳是的陽光 2024-12-04 05:31:07

Hpricot - UTF-8 问题
UTF-8 中的无效字节序列(ArgumentError)

require 'hpricot'
require 'open-uri'

doc = open('http://www.amazon.co.jp/') {|f| Hpricot(f.read) }
puts doc.to_html

open('http://www.amazon.co.jp/') {|f| Hpricot(f.read.encode("UTF-8")) }

Hpricot - UTF-8 issues
invalid byte sequence in UTF-8 (ArgumentError)

require 'hpricot'
require 'open-uri'

doc = open('http://www.amazon.co.jp/') {|f| Hpricot(f.read) }
puts doc.to_html

open('http://www.amazon.co.jp/') {|f| Hpricot(f.read.encode("UTF-8")) }
○愚か者の日 2024-12-04 05:31:07

我知道它如何与 Net::HTTP (Ruby 1.9.2) 一起工作:

require 'net/http'
require 'uri'

url = URI.parse('http://www.baidu.com')
res = Net::HTTP.start(url.host, url.port) {|http|
  http.get('/')
}
str = res.body.force_encoding('GB2312')
puts str
puts str.encoding.name # => GB2312

这有帮助吗?

I know how it could work with Net::HTTP (Ruby 1.9.2):

require 'net/http'
require 'uri'

url = URI.parse('http://www.baidu.com')
res = Net::HTTP.start(url.host, url.port) {|http|
  http.get('/')
}
str = res.body.force_encoding('GB2312')
puts str
puts str.encoding.name # => GB2312

Does that help?

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