Rails の .to_json() メソッドを使用してハッシュを JSON に変換します。
ハッシュ:
{ "Größe" => "XL" }
JSON:
"{\"Gr\\u00f6\\u00dfe\":\"XL\"}"
その後、JSON 文字列は、この Rails (3.2.6) SQL コマンドによってstaticと呼ばれる hstore (Postgres) 列に格納されます。
UPDATE ... "static" = 'options=>"{\"Gr\u00f6\u00dfe\":\"XL\"}"' WHERE ...
すでに 1 つのエスケープ バックスラッシュがありません。
データベース自体では、静的列は次のようになります。
"options"=>"{\"Gru00f6u00dfe\":\"XL\"}"
u00f6とu00dfeのバックスラッシュはすべてなくなりました。
JSON.parse() はマルチバイト文字を識別できなくなったため、次のハッシュを返します。
{ "Gru00f6u00dfe" => "XL" }
これを防ぐ方法を知っている人はいますか?助けてくれてありがとう!