2012-02-12 12 views
0

私のアプリをRails 2.3.8/Ruby 1.8.7から2.3.14/Ruby 1.9.2に移行しました。基本的に動作します。私は持っておくの問題は、時折HAMLテンプレートで、私は次のエラーを取得しますということです。Rails 2.3とRuby 1.9のバイトシーケンスutf-8が無効です

これは、符号化問題であり、私は(Iconv.convを使用して)それに対処する方法についていくつかの提案を見てきましたしかし、私が試したことはうまくいかないようでした。アプリケーションレベルでこれを解決するにはどうすればよいですか(すべてのテンプレートにパッチを適用する必要はありません)ありがとう。

EDIT:いくつかのスタックトレース

ActionView::TemplateError (invalid byte sequence in UTF-8) on line #28 of app/views/users/_user.haml: 
27:  - if user.valid? 
28:  - image_onclick = remote_function(:url => { :action => :toggle_image, :id => user.id }) 

    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `=~' 
    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `!~' 
    vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb:68:in `blank?' 
    vendor/rails/activerecord/lib/active_record/validations.rb:478:in `block (2 levels) in validates_each' 
    vendor/rails/activerecord/lib/active_record/validations.rb:476:in `each' 
    vendor/rails/activerecord/lib/active_record/validations.rb:476:in `block in validates_each' 
    ... etc 

データベーステーブルCHARSETUTF-8でエンコードされています。古いruby-mysql宝石を - 私はこれは私が使用してきたのMySQLアダプタの問題であるように思わenvironment.rb

+0

詳細をお知らせください。たとえば、テンプレートのエンコーディングは何ですか?より長いスタックトレースを表示できますか? – gioele

+0

@gioele申し訳ありませんが、詳細を追加しました。ありがとう。 – sa125

答えて

1

Encoding.default_internal = 'utf-8' 
Encoding.default_external = 'utf-8' 

を設定するが、私は、私のテンプレートに特定のエンコードを割り当てませんでした。私はmysql2にアップグレードしましたが、それが問題を解決したようです。

関連する問題