2012-02-12 65 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)上看到如何對付它的一些建議,但我試過的東西似乎沒有工作。如何在應用程序級別解決此問題(無需修補每個模板)?謝謝。

編輯:一些堆棧跟蹤

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進行編碼。我沒有任何特定的編碼分配給我的模板,雖然我在environment.rb

+0

您應該提供更多信息。例如,模板的編碼是什麼?你能展示更長的堆棧跟蹤嗎? – gioele 2012-02-12 16:02:40

+0

@gioele抱歉,添加更多詳情。謝謝。 – sa125 2012-02-13 05:45:52

回答

1

這似乎是我一直在使用MySQL的適配器的問題設置

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

- 老ruby-mysql寶石。我已升級到mysql2,似乎解決了這個問題。

相關問題