Nokogiri在heroku上产生不同的结果?

我有一个非常奇怪的问题,我很感激帮助追踪它。

我正在使用nokogiri gem解析一些html,我正在解析一个有奇怪字符的文件。 不完全确定这个角色是什么,在vim中它显示为^ Q.

在我自己的计算机上,一切正常,但是在heroku上它插入当它击中角色时,选择器只返回奇怪角色之前的元素。

为了说明: Nokogiri::HTML( open("http://thoms.net.nz/e2.html")).css("body div").count在heroku上Nokogiri::HTML( open("http://thoms.net.nz/e2.html")).css("body div").count为1,在计算机上Nokogiri::HTML( open("http://thoms.net.nz/e2.html")).css("body div").count为2。 – 可以从http://thoms.net.nz/e2.html下载包含此字符的文件。

我的计算机和heroku都使用ruby 1.9.3运行nokogiri 1.5.5。

^Q是一个软件控制字符(XON),它不应该是HTML格式。 我怀疑它的意外存在让Nokogiri和Heroku都感到困惑,但是以不同的方式。

来自互联网荒野的HTML文档可能会以多种方式被破坏。 我已经看到了各种各样的垃圾,如果我无法使用iconv或Unicode音译来理解它,我会采用快速全局搜索并替换以删除任何不在正常ASCII范围内的任何内容处理。


在Ruby中,全局搜索和替换使用String#gsub

 doc = Nokogiri::HTML(html.gsub("\u0011", ''))