3

Rails 2.3.9 で実行されている Rails アプリケーションがあります。Ruby 1.8.7 で問題なく動作します。現在、ruby 1.9.2-head でテストしています。

Unicode 文字列に依存するページを読み込もうとするまで、アプリケーションは正常に読み込まれます。次に、悪名高いエンコーディング エラーが発生します。

ActionView::TemplateError (互換性のない文字エンコーディング: UTF-8 および ASCII-8BIT) …</pre>

問題は、データベースからいくつかの文字列を ASCII-8BIT として取得していることにあるようです。

Rails 3 が ruby​​ 1.9 と Unicode で正常に動作することは知っています。解決策が 2.3 にバックポートされたのだろうか。

では、ユニコード 2.3.9 の Rails アプリを Ruby 1.9 で動作させる方法はありますか?

4

2 に答える 2

3

そこで私は先に進み、エンコーディングの問題を引き起こしていた 2 つの根本的な問題を修正するプラグインを作成しました。

  • ActiveRecord モデル
  • Rails 組み込みヘルパー

GitHub の UnicodeOverride プラグインを参照してください。

于 2010-07-10T17:25:32.260 に答える
1

mysql を使用している場合は、mysql gem http://github.com/tmtm/ruby-mysqlの代わりにこれを使用してください 。database.yml のデータベース アダプターとして "mysql" を残します。

Rails 2.3.8 で ruby​​ 1.9.2-rc1 を実行していますが、これにより、互換性のない文字エンコーディングの問題が解決されました。

于 2010-07-10T17:21:38.447 に答える