Я использую ruby 1.9 для анализа следующего CSV-файла с MacRoman символ
# encoding: ISO-8859-1
#csv_parse.csv
Name, main-dialogue
"Marceu", "Give it to him ó he, his wife."
Я сделал следующее, чтобы разобрать это.
require 'csv'
input_string = File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")
#=> "Name, main-dialogue\r\n\"Marceu\", \"Give it to him \x97 he, his wife.\"\r\n"
data = CSV.parse(input_string, :quote_char => "'", :col_sep => "/\",/")
#=> [["Name, main-dialogue"], ["\"Marceu", " \"Give it to him \x97 he, his wife.\""]]
Итак, проблема заключается в том, что второй массив данных состоит из одной строки, а не из двух строк, например:
["\"Marceu\"", " \"Give it to him \x97 he, his wife.\""]]
Я пытался с :col_sep => ","
(это поведение по умолчанию), но это дало мне 3 разделения.
header = CSV.parse(input_string, :quote_char => "'")[0].map{|a| a.strip.downcase unless a.nil? }
#=> ["Name", "main-dialogue"]
Я должен снова проанализировать заголовок, поскольку здесь нет двойной кавычки.
Вывод предполагается снова отобразить в браузере, поэтому символ ó
должен отображаться как обычно, а не как \x97
или другой.
Есть ли способ решить вышеуказанные проблемы?