私が期待どおりに動作しているのと同じ(Railsの4.2.7.1)Herokuの内の2台のサーバーでアプリケーションと1を実行している:のRails、同じバージョン
ActiveSupport::JSON.encode(html: '<p>Hello World</p>')
#=> "{\"html\":\"<p>Hello World</p>\"}
上で実行されている同じコードを
ActiveSupport::JSON.encode(html: '<p>Hello World</p>')
#=> "{\"html\":\"\\u003cp\\u003eHello World\\u003c/p\\u003e\"}"
両方のサーバーが同じルビー(ルビー2.2.6p396)を持っていると私はENV['LANG']
はエンコーディングの役割を果たしているが、両方のサーバがに保存されている同じ値を持って集まってきたものから:第二のサーバは、異なる結果を生成しますそこに:"en_US.UTF-8"
。
ありがとうございました。
その他の詳細:結果の文字列は両方ともUTF-8でエンコードされます。
ActiveSupport::JSON.encode(html: '<p>Hello World</p>').encoding
=> #<Encoding:UTF-8>
Rubyのコンパイル方法に違いはありますか?私は、ActiveSupport :: JSON.encodeからCRuby-sourcecodeの 'RUBY_ENCODING_H'定数まで多くのソースコードを調べました。誰かが継続しているように感じるなら、それまでのところです。編集:そして、より多くの検索は、readlineサポートとのコンパイルに向かう..?しかし、私は質問に特定の答えがありません - 申し訳ありません! –