Ruby 编码问题

Ruby encoding issue

我正在保存来自网络的 CSV 文件。在网络上它似乎编码正确,但当我将它保存在我的应用程序的文件夹中时,我发现字符“µ”丢失了,而“�”出现在它的位置。

我获取数据的页面在 header 中没有编码,无论如何我在我的代码(rake 任务)中指定读取编码如下:

open("public/test.csv", "w:UTF-8") do |file|
  open("http://url.CSV", "r:UTF-8") do |row|
    file.write(row.read)
  end
end

任何帮助将不胜感激,顺便说一句,我正在使用 RubyMine。

HTTP 的默认编码是 ISO-8859-1。保存的 CSV 文件使用该编码,因此在 Ruby 中读取它时,您必须正确设置编码:

File.open('filename.csv', 'r:ISO-8859-1') do |f|
  # do something with the contents
end