我有以下情况:我的 web 服务正在接收 JSON 数据并创建模型(典型的 REST 场景)。有时我得到一个
Encoding::CompatibilityError Exception: incompatible character encodings: ASCII-8BIT and UTF-8
保存记录时的错误消息,只能(或)绑定到两个属性。启动调试器,将这两个属性中的任何一个设置为空字符串并保存工作,如下所示:
model = Model.new(params[:model])
model.save! # Fails with above error message
model = Model.new(params[:model])
model.attribute1 = ""
model.save! # Works
model = Model.new(params[:model])
model.attribute2 = ""
model.save! # Works too!
现在params都是从http请求中解析出来的,怎么会相互依赖呢?
有同样情况的人吗?
编辑: 我们找到了兼容性错误的原因:https ://github.com/jruby/activerecord-jdbc-adapter/issues/229看起来,JDBC 适配器在 utf-8 编码方面存在一些错误,这已在传统红宝石中固定了很长时间。