Actions
Defect #41434
openCSV import fails with error for quoted fields containing newlines and CRLF line endings
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Affected version:
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 about 2 months 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 18 days ago
- File 41434-csv-crlf.patch 41434-csv-crlf.patch added
The attached patch should fix the issue.
Actions