Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
"\360\237\230\204" 是标准表情符号 (U+1f604)
当我尝试在使用 JSON 的服务器端点中发送此字符时,响应被破坏。原因如下:
>> JSON({:a => "\360\237\230\204"}.to_json) => {"a"=>"\357\230\204"}
如您所见,字符串的第一部分已被 JSON 库修改。
这是一个已知的错误,是否有解决方法?或者这是设计使然,因为以十六进制返回的值是 f604 而不是 1f604?
谢谢!
ActiveRecord 和标准 JSON to_json 方法之间存在冲突。ActiveRecord to_json 实现有一个错误。我使用此线程中指定的初始化程序解决了它:
你如何处理 ActiveSupport::JSON 和 JSON gem 之间的冲突?
尝试使用 Oj:
Oj.dump(data, mode: :compat)
您必须将其添加oj到您的宝石列表中
oj