Rails アプリケーションを UTF-8 ネイティブにしようとしています。これを行っているのは、Ruby 1.9 にアップグレードしてから、Web ページに UTF-8 文字を表示する必要があるたびに、次のような問題が発生したためです。
incompatible character encodings: UTF-8 and ASCII-8BIT
エラーページとして。この種の Web ページは失敗するため、UTF-8 テキストをレンダリングしようとするとエラーが発生することがわかりました。
%h3.book_title
= "カタカナ"
(上記の文字列のエンコードを要求すると、UTF-8 が返されます)
それでも、これは成功します:
%h3.book_title
= "カタカナ".force_encoding("ASCII-8BIT")
そのため、Rails は 1.9 アップグレード以降、デフォルトで ASCII-8BIT エンコーディングを使用してすべてのページをレンダリングすることを決定しているようです。私のページには、UTF-8 でのみ適切に機能する多言語データが頻繁に表示されるため、これは問題です。
私が試したこと:
Mysql2 gem を使用しています。これをenvironment.rbに入れました:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
これは私のapplication.rbにあります:
config.encoding = "utf-8"
これはどれも実際には機能していません。私のアプリケーションがこの ASCII-8BIT ナンセンスの代わりに UTF-8 のみを使用するようにする方法について、誰かが光を当てることができますか?