Ruby on rails 轨道固定装置编码错误“;不兼容的字符编码:ASCII-8BIT和UTF-8“;

Ruby on rails 轨道固定装置编码错误“;不兼容的字符编码:ASCII-8BIT和UTF-8“;,ruby-on-rails,utf-8,character-encoding,Ruby On Rails,Utf 8,Character Encoding,使用ruby 1.9.2和Rails 3,当我尝试在seeds.rb中运行此程序时,会出现编码错误: Fixtures.create_fixtures("#{Rails.root}/db/seed", "countries") 我确信.csv文件是用UTF-8编码的,可以使用ruby的csv类读取和解析它。这是Rails 3与fixture的编码问题吗?我认为问题出在arel中。我在插入一个UTF-8字符的字符串时得到了同样的结果 arel (2.0.4) lib/arel/visitors

使用ruby 1.9.2和Rails 3,当我尝试在
seeds.rb中运行此程序时,会出现编码错误:

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

我确信.csv文件是用UTF-8编码的,可以使用ruby的csv类读取和解析它。这是Rails 3与fixture的编码问题吗?

我认为问题出在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)

不要认为这会对你的固定装置问题有多大帮助,尽管…

我认为问题出在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)
不过,不要认为这对解决你的固定装置问题有多大帮助