Nokogiri在Heroku上解析时添加了字符

似乎Nokogiri有一个UTF-8转换角色的问题。 我收集到这是一个与LibXML2相关的问题。 Nokogiri建议将LibXML2升级到2.7.7而不是在Heroku上运行的2.7.6。

任何人都知道如何在Heroku上使用LibXML2 2.7.7(或更高版本)?

问题如下 –

doc = Nokogiri::HTML("

Hi Hello

") doc.inner_html => "

Hi Hello

" doc.inner_html = "

Hello World

" => "

Hello World

" doc.inner_html => "

Hello World

"

看起来这是相关的: https : //github.com/sparklemotion/nokogiri/issues/306

这不会发生在我的本地计算机上。 Rails将’utf-8’设置为config.encoding并且呈现的页面具有utf-8字符集元标记。

在我的本地机器上我用limxml2 2.8.0运行Nokogiri 1.6,在Heroku上我用libxml2 2.7.6运行Nokogiri 1.6。

谢谢。

不幸的是,Heroku不支持在堆栈中安装额外的库或二进制文件。 最好的解决方法是将这些提供给您的项目。 您需要使用64位Linux版本才能使它们在Heroku上运行; 静态编译还可以帮助确保包含所需的任何依赖项。 同样,对于依赖外部库的gem,我们建议静态编译gem并将其存储到项目中。

如果您希望尝试提供二进制文件,库或gem,则可以使用Heroku作为构建环境。 Herokus的一位工程师创建了一个构建服务器,允许您上传源代码,运行编译步骤,然后下载生成的二进制文件。 你可以在Github上找到这个名为“Vulcan”的项目。

下面是更多说明的链接… https://devcenter.heroku.com/articles/buildpack-binaries