【发布时间】:2010-11-15 11:50:16
【问题描述】:
我有一个执行以下操作的 Sinatra 应用程序 (http://analyzethis.espace-technologies.com)
- 检索 HTML 页面(通过 net/http)
- 从 response.body 创建一个 Nokogiri 文档
- 提取一些信息并在响应中发回。响应应采用 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 返回视窗-1256。我使用 string.encode("utf-8") 并使用它发送响应,但响应再次不正确。
关于我的方法有什么问题有什么建议或想法吗?
【问题讨论】:
标签: ruby http encoding sinatra ruby-1.9