Ruby Nokogiri对heroku产生了不同的结果?

Ruby Nokogiri对heroku产生了不同的结果?,ruby,heroku,nokogiri,Ruby,Heroku,Nokogiri,我遇到了一个非常奇怪的问题,如果能帮我找到它,我将不胜感激 我正在使用nokogiri gem解析一些html,我正在解析一个文件,其中有一个奇怪的字符。不完全确定这个字符是什么,在vim中显示为^Q 在我自己的电脑上,一切正常,但在heroku上,当它点击字符时会插入一个,选择器只返回奇怪字符之前的元素 举例说明: Nokogiri::HTML(打开(“http://thoms.net.nz/e2.htmlcss(“body div”).count在heroku上是1,在我的计算机上是2包含此

我遇到了一个非常奇怪的问题,如果能帮我找到它,我将不胜感激

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

在我自己的电脑上,一切正常,但在heroku上,当它点击字符时会插入一个
,选择器只返回奇怪字符之前的元素

举例说明:
Nokogiri::HTML(打开(“http://thoms.net.nz/e2.htmlcss(“body div”).count
在heroku上是1,在我的计算机上是2包含此字符的文件可以从下载


我的电脑和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", ''))

我想这有点不清楚,对不起。我遇到的问题是,当在heroku上运行时,nokogiri库为这个包含奇怪字符的文件生成了不正确的结果,但同一个文件在我的计算机上运行良好。您能显示导致问题的HTML的最小示例吗?没有HTML示例和您正在使用的代码示例,我们只能猜测答案。实际上,HTML文档可以有多个
块。这是非传统的,但我以前见过。HTML在我的Web服务器上,URL是个问题。这不是最容易发布的,因为它包含了一个奇怪的字符。html被破坏了。与nokogiri/ruby版本相比,libxml版本的差异更多。请不要使用nokogiri-v来查看libxml版本。啊,一定是这样。Heroku正在运行libxml2.7.6,我的机器有2.7.8。你能推荐一个好的过滤方法吗?这个文件实际上不是来自互联网,它是用pdftohtml从pdf转换而来的,因此更适合一般的怪异。在heroku上运行的同一个软件与在本地运行的软件的行为仍然很奇怪,但我想如果我只是先过滤输入,就不必解决这个问题。谢谢你的帮助。我想我会像这样运行tr命令:tr-dc'[:print:'output.html-这样它就不会被其他奇怪的字符绊倒。你可以从命令行执行,也可以使用Ruby的
gsub
tr
方法。它们都将满足你的需求。