繁体   English   中英

Rails 2.3和ruby 1.9中的无效字节序列utf-8错误

[英]invalid byte sequence utf-8 error in rails 2.3 and ruby 1.9

我已经将我的应用程序从Rails 2.3.8 / Ruby 1.8.7迁移到2.3.14 / Ruby 1.9.2-并非易事,但基本上可以运行。 我一直遇到的一个问题是,在偶尔的Haml模板中,我会得到以下错误:

ActionView::TemplateError (invalid byte sequence in UTF-8) on line #....

这是一个编码问题,我已经看到了一些有关如何处理它的建议(使用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编码。 尽管我设置了,但我没有为模板分配任何特定的编码

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

environment.rb

我使用的MySQL适配器似乎是一个问题-旧的ruby-mysql gem。 我已经升级到mysql2 ,这似乎已经解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM