Ruby 1.9.3pl194 を使用して、JSONおよび logfileで使用する非 ASCII Unicode 文字を含む文字列をエスケープしようとしています。JSON を消費するものは非 ASCII を処理できないため、エスケープされたバージョンを作成する必要がありますが...
a = "Abc\u00eddef"
puts a
puts a.inspect
生成:
Abcídef
"Abc\u00EDdef"
Abc\u00eddef
2 番目の出力には不要な二重引用符が含まれていることに注意してください。文字列だけをファイルに書き込みたいので、引用符は必要ありません。JSON 文字列で使用するためだけではありません。
使ってみても同じことが起こりますActionSupport::JSON.decode(b)
私はただできることを知っています
puts a.inspect[1..-2]
しかし、それはちょっと醜いです。確かに、引用符を取り除かずにこれを行う方法はありますか?
それは単純な古いRubyなので.html_safe
、レールに入っているわけではありません(それが機能するかどうかはわかりません)。