Nokogiri は nbsp 文字の UTF-8 変換に問題があるようです。これは LibXML2 に関連する問題であることがわかりました。Nokogiri は、Heroku で実行されている 2.7.6 ではなく、LibXML2 を 2.7.7 にアップグレードすることを推奨しています。
Heroku で LibXML2 2.7.7 (またはそれ以降) を使用する方法を知っている人はいますか?
問題は次のとおりです-
doc = Nokogiri::HTML("<html><p>Hi Hello</p></html>")
doc.inner_html
=> "<html><body><p>Hi Hello</p></body></html>"
doc.inner_html = "<p>Hello World</p>"
=> "<p>Hello World</p>"
doc.inner_html
=> "<p>Hello World</p>"
これは関連しているようです: https://github.com/sparklemotion/nokogiri/issues/306
これは、ローカル マシンでは発生しません。Rails には 'utf-8' が設定されてconfig.encoding
おり、レンダリングされるページには utf-8 charset メタ タグがあります。
私のローカル マシンでは Nokogiri 1.6 と limxml2 2.8.0 を実行しており、Heroku では Nokogiri 1.6 と libxml2 2.7.6 を実行しています。
ありがとう。