1
我使用Rails 3.2和CSV库导入CSV文件。 我用这样的:导入CSV和编码
CSV.foreach(open(csv_url), :headers => true) do |p|
当我能正常工作我的本地计算机上运行,但由于某种原因失败了在Heroku上的一些记录与错误:
incompatible character encodings: ASCII-8BIT and UTF-8
它失败在我已经定义的方法中,简单地附加两个字符串:
def name_and_brand
"#{name} #{brand.name}"
end
它只在某些记录上失败,但并非全部。
我读过很多关于这方面的信息,但我还没有想出如何解决它。
如果我只是输出文本的编码,我解析它在我的本地计算机上说它是UTF-8
,但在Heroku上它说ASCII-8BIT
。
如果我在控制台中运行"a".encoding
它输出UTF-8
和Heroku输出UTF-8
也。
什么我试过到目前为止
# in application.rb
config.encoding = "utf-8"
# in environment.rb
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
# in other files
# encoding: UTF-8
一个不同之处,我发现的是,Heroku的使用Ruby 1.9.2和我在我的本地机器上使用1.9.3。这可能吗?
任何想法,我可以尝试更多?
编辑
我发现,你可以明确地在Gemfile中添加ruby "1.9.3"
选择在Heroku红宝石版本。似乎已经解决了我的问题。
我使用Ruby 1.9.3p194但我仍然有同样的问题将
ruby "1.9.3"
!有谁知道如何强制上传文件的编码? – Jonatan 2012-10-15 21:11:48