相关疑难解决方法(0)

ruby 1.9:UTF-8中的无效字节序列

我在Ruby(1.9)中编写了一个爬虫程序,它从很多随机站点中消耗了大量的HTML.
当试图提取链接时,我决定使用.scan(/href="(.*?)"/i)而不是nokogiri/hpricot(主要加速).问题是我现在收到很多" invalid byte sequence in UTF-8"错误.
根据我的理解,该net/http库没有任何特定于编码的选项,并且所引入的内容基本上没有正确标记.
实际使用传入数据的最佳方法是什么?我尝试.encode使用替换和无效选项集,但到目前为止没有成功...

ruby encoding utf-8

109
推荐指数
5
解决办法
12万
查看次数

如何在Ruby 1.9.1中将Net :: HTTP响应转换为某种编码?

我有一个Sinatra应用程序(http://analyzethis.espace-technologies.com)执行以下操作

  1. 检索HTML页面(通过net/http)
  2. 从response.body创建Nokogiri文档
  3. 提取一些信息并将其发送回响应中.响应应该是UTF-8编码

所以我在尝试阅读使用windows-1256编码的网站时遇到了这个问题,例如www.filfan.com或www.masrawy.com.

问题是虽然没有抛出错误,但编码转换的结果不正确.

net/http response.body.encoding给出ASCII-8BIT,它不能转换为UTF-8

如果我做Nokogiri :: HTML(response.body)并使用css选择器从页面获取某些内容 - 例如标题标签的内容 - 我得到一个字符串,当我调用string.encoding返回WINDOWS-1256 .我使用string.encode("utf-8")并使用它发送响应,但同样响应不正确.

关于我的方法有什么问题的任何建议或想法?

ruby encoding http sinatra ruby-1.9

9
推荐指数
2
解决办法
9445
查看次数

标签 统计

encoding ×2

ruby ×2

http ×1

ruby-1.9 ×1

sinatra ×1

utf-8 ×1