html - Ruby、Nokogiri : how do i ensure UTF8 throughout nokogiri parsing, erb 模板和编码 HTML 文件

标签 html ruby parsing utf-8 nokogiri

我终于设法解析了网站的部分内容:

get '/' do
  url = '<website>'
  data = Nokogiri::HTML(open(url))
  @rows = data.css("td[valign=top] table tr") 
  erb :muster
end

现在我试图在我的 View 中提取某行。因此我输入了我的 HTML 代码:

<%= @rows[2] %> 

它实际上返回了代码,但它在 UTF8 方面有问题:

<td class="class_name">&nbsp;</td>

相反它说

<td class="class_name">�</td>

如何在 nokogiri 解析、erb 和 HTML 生成期间确保使用 UTF8?

最佳答案

参见:http://www.nokogiri.org/tutorials/parsing_an_html_xml_document.html#encoding

在您的情况下,文档声明它是使用 iso8859 编码的:

<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">

您可以执行以下操作以强制 Nokogiri 将流视为 UTF-8:

data = Nokogiri::HTML(open(url), nil, Encoding::UTF_8.to_s)

关于html - Ruby、Nokogiri : how do i ensure UTF8 throughout nokogiri parsing, erb 模板和编码 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28253912/

相关文章:

javascript - jQuery 选择器获取未知深度下的(第 n 个)元素?

php - 在 Apple 设备上渲染带有标签的泰文字符会中断吗?

c++ - 用名称标记 std::function?

jquery - 通过浏览器扩展添加表值

ios - 将 UIWindow rootViewController 从 UIViewController 重新分配给包含 UINavigationControllers 的 UITabBarController

java - 如何在发送到 servlet 之前操作变量

python - 如何从 HTML 文件中的某一行开始抓取数据

散列的散列的 Ruby 散列

css - Nokogiri 并从充满 Nokogiri 节点的数组中隔离选择元素

ruby - 创建新文件时在 emacs 中加载模板