2012-02-12 69 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,似乎解决了这个问题。

相关问题