【问题标题】:Rails fixtures encoding error "incompatible character encodings: ASCII-8BIT and UTF-8"Rails 固定装置编码错误“不兼容的字符编码:ASCII-8BIT 和 UTF-8”
【发布时间】:2011-04-13 09:10:01
【问题描述】:

使用 ruby​​ 1.9.2 和 Rails 3 我尝试在 seeds.rb 中运行时遇到编码错误:

Fixtures.create_fixtures("#{Rails.root}/db/seed", "countries")

我确信 .csv 文件是用 UTF-8 编码的,并且可以使用 ruby​​ 的 CSV 类进行读取和解析。这是固定装置的 Rails 3 编码问题吗?

【问题讨论】:

    标签: ruby-on-rails utf-8 character-encoding


    【解决方案1】:

    我认为问题出在 arel 上。插入带有 UTF-8 字符的字符串时,我得到了同样的结果。

     arel (2.0.4) lib/arel/visitors/to_sql.rb:70:in `join'
     arel (2.0.4) lib/arel/visitors/to_sql.rb:70:in `visit_Arel_Nodes_Values'
     arel (2.0.4) lib/arel/visitors/visitor.rb:15:in `visit'
     arel (2.0.4) lib/arel/visitors/to_sql.rb:60:in `visit_Arel_Nodes_InsertStatement'
     arel (2.0.4) lib/arel/visitors/visitor.rb:15:in `visit'
     arel (2.0.4) lib/arel/visitors/visitor.rb:5:in `accept'
     arel (2.0.4) lib/arel/visitors/to_sql.rb:19:in `block in accept'
     activerecord (3.0.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:110:in `with_connection'
     arel (2.0.4) lib/arel/visitors/to_sql.rb:17:in `accept'
     arel (2.0.4) lib/arel/tree_manager.rb:19:in `to_sql'
     arel (2.0.4) lib/arel/select_manager.rb:191:in `insert'
    

    就这样解决了:

    converter = Iconv.new 'UTF-8//IGNORE', 'UTF-8'
        value = converter.iconv(value)
    

    不过,不要认为它对您的夹具问题有多大帮助...

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 2011-05-26
      • 2011-12-14
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2011-10-17
      相关资源
      最近更新 更多