4

「\360\ 237 \ 230 \ 204」は標準の絵文字アイコン(U + 1f604)です

JSONを話すサーバーエンドポイントでこの文字を送信しようとすると、応答が壊れます。理由は次のとおりです。

>> JSON({:a => "\360\237\230\204"}.to_json)
=> {"a"=>"\357\230\204"}

ご覧のとおり、文字列の最初の部分はJSONライブラリによって変更されています。

これは既知のバグですか?回避策はありますか?または、16進数で返される値が1f604ではなくf604であるため、これはどういうわけか設計によるものですか?

ありがとう!

4

2 に答える 2

2

ActiveRecordと標準のJSONto_jsonメソッドの間に競合がありました。ActiveRecordto_jsonの実装にはバグがありました。私はこのスレッドで指定されたイニシャライザーを使用してそれを解決しました:

ActiveSupport :: JSONとJSONgemの間の競合にどのように対処しますか?

于 2011-10-15T04:34:49.720 に答える
0

Ojを使用してみてください:

Oj.dump(data, mode: :compat)

ojあなたはそれをあなたの宝石リストに追加する必要があります

于 2018-09-13T08:51:49.123 に答える