Ruby unable to parse a CSV file: CSV::MalformedCSVError (Illegal quoting in line 1.)
quote_chars = %w(” | ~ ^ & *) begin @report = CSV.read(csv_file, headers: :first_row, quote_char: quote_chars.shift) rescue CSV::MalformedCSVError quote_chars.empty? ? raise : retry end it’s not perfect but it works most of the time. N.B. CSV.parse takes the same parameters as CSV.read, so either a file or data from memory can be used