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