0

我有以下情况:我的 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 编码方面存在一些错误,这已在传统红宝石中固定了很长时间。

4

1 回答 1

0

正如在对我的原始问题的编辑中添加的那样,问题是 JRuby 的 JDBC 适配器中的一个错误(我忘了将其添加为约束,我的错!):https ://github.com/jruby/activerecord-jdbc-适配器/问题/229

于 2012-10-15T15:50:59.533 回答