4

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 のみを使用するようにする方法について、誰かが光を当てることができますか?

4

1 に答える 1

-2

UTF を強制するために、ビュー ファイルの最初の行として魔法の文字エンコーディングのシバンを追加します。

# encoding: UTF-8
%h3.book_title
    = "カタカナ"
于 2013-07-22T19:37:25.223 に答える