Defect #41434
closedCSV import fails on CRLF files when first row has quoted field with newline
Description
When you attempt to import the attached CSV file (test.csv), the following error message is displayed:
The file is not a CSV file or does not match the settings below (Unquoted fields do not allow new line <"\r\n"> in line 1.)

This error occurs when the CSV file contains values with newline characters ("\n") inside double-quoted fields, and the lines end with DOS-style line endings ("\r\n"). If the file uses UNIX-style line endings (\n), the error does not occur.
This type of CSV file can be generated by Microsoft Excel when cells contain line breaks.

Files
Updated by Go MAEDA over 1 year ago
I found that the error occurs only when quoted values that contain "\n" exist in the first line.
redmine-app(prod)> CSV.parse(%Q|FieldName1,"Field\nName2"\r\nValue1,"Value2"|) /Users/maeda/redmines/gems/ruby/3.3.0/gems/irb-1.14.1/lib/irb.rb:1260:in `full_message': Any value after quoted field isn't allowed in line 1. (CSV::MalformedCSVError)
No problem when it exists in the second line or later.
redmine-app(prod)> CSV.parse(%Q|FieldName1,"FieldName2"\r\nValue1,"Value\n2"|) => [["FieldName1", "FieldName2"], ["Value1", "Value\n2"]]
Setting the row_sep option also avoids the error.
redmine-app(prod)> CSV.parse(%Q|FieldName1,"Field\nName2"\r\nValue1,"Value2"|, row_sep: "\r\n") => [["FieldName1", "Field\nName2"], ["Value1", "Value2"]]
Updated by Go MAEDA over 1 year ago
- File 41434-csv-crlf.patch 41434-csv-crlf.patch added
The attached patch should fix the issue.
Updated by Go MAEDA over 1 year ago
- Target version set to 6.1.0
Setting the target version to 6.1.0.
Updated by Marius BĂLTEANU 6 months ago
- Target version changed from 6.1.0 to Candidate for next minor release
Updated by Go MAEDA 11 days ago
- File 0001-CSV-import-fails-with-error-for-quoted-fields-contai.patch 0001-CSV-import-fails-with-error-for-quoted-fields-contai.patch added
- Subject changed from CSV import fails with error for quoted fields containing newlines and CRLF line endings to CSV import fails on CRLF files when first row has quoted field with newline
- Assignee set to Go MAEDA
- Target version changed from Candidate for next minor release to 7.0.0
Added test code.
Setting the target version to 7.0.0.