質問: @test.Area.force_encoding("utf-8") ``` モデル、コントローラなどはscaffoldで生成してあまり触ってません。 あと、viewの所はslimを使っています。
回答: 想像ですが、取得されたデータは文字列ではなくバイナリ値なのではないでしょうか。そうであれば、後に書くようにそのまま表示しようとしようが`force_encoding`しようがエンコーディング関係のエラーとなります。 独自データ型の扱いについてはコネクションアダプタが対応していればそちらのリファレンスに扱い方が載っているかもしれません。 `incompatible character encodings`(`Encoding::CompatibilityError`)は互換性のないエンコーディング間で処理を行おうとしたときに出るエラーです。RailsのViewは普通UTF-8なので、そこにASCII-8BITの文字列を埋め込もうとするとこうなります。 `invalid byte sequence in ...`(`Encoding::InvalidByteSequenceError`)は、データの中身が指定されたエンコーディングにおいて不正な場合に発生します。 元のデータが「UTF-8なバイト列」であれば`#force_encoding('utf-8')`を行うことで正しく「UTF-8な文字列」にすることはできますが、元のデータがUTF-8として正しくなければ`InvalidByteSequenceError`になることになります。(注意が必要なのは、`InvalidByteSequenceError`は`#force_encoding`のタイミングではなく、その後になんらかの操作を行おうとした他タイミングで発生することです)