次の状況があります。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エンコーディングでいくつかのエラーがあります。従来のルビーでは長い間修正されてきました。