0

次の状況があります。WebサービスがJSONデータを受信し、モデルを作成しています(通常のRESTシナリオ)。時々私は

Encoding::CompatibilityError Exception: incompatible character encodings: ASCII-8BIT and UTF-8

レコードを保存するときのエラーメッセージ。2つの属性にのみバインドできます(またはバインドできます)。デバッガーを起動し、これら2つの属性のいずれかを空の文字列に設定して保存すると、次のように機能します。

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!

これで、パラメータは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 に答える