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 3 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 about 2 months ago
- File 41434-csv-crlf.patch 41434-csv-crlf.patch added
The attached patch should fix the issue.
Updated by Go MAEDA about 1 month ago
- Target version set to 6.1.0
Setting the target version to 6.1.0.
Actions