Project

General

Profile

Actions

Patch #25861

closed

CSV Importer - handle UndefinedConversionErrors

Added by Jens Krämer over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Category:
Importers
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

The CSV import already handles a couple of Exceptions that may happen when the user-selected encoding does not match the real encoding of the CSV (or it contains otherwise illegal byte sequences). We recently encountered Encoding::UndefinedConversionError, which is not yet caught by that error handling. The attached patches add a test case and a fix for that.


Files

Actions #1

Updated by Go MAEDA over 7 years ago

  • Target version set to 3.2.7

We can reproduce the problem with the test in 0001-adds-failing-test-case-for-import-with-wrong-encodin.patch. Setting target version to 3.2.7.

By the way, the encoding of the file invalid-Shift_JIS.csv is valid CP932. Shift_JIS and CP932 are almost identical, but CP932 includes more characters.

$ iconv -f cp932 -t utf8 test/fixtures/files/invalid-Shift_JIS.csv
①
Actions #2

Updated by Jean-Philippe Lang over 7 years ago

  • Status changed from New to Needs feedback

Go MAEDA wrote:

We can reproduce the problem with the test in 0001-adds-failing-test-case-for-import-with-wrong-encodin.patch. Setting target version to 3.2.7.

The test passes for me with ruby 2.0 (I would get a Encoding::InvalidByteSequenceError). Maybe we could simply rescue EncodingError which is the base class for encoding errors?

Actions #3

Updated by Go MAEDA over 7 years ago

Jean-Philippe Lang wrote:

Maybe we could simply rescue EncodingError which is the base class for encoding errors?

I agree, caching EncodingError is better. We can simplify the code and catch all errors caused by iconv.

Actions #4

Updated by Jean-Philippe Lang over 7 years ago

  • Status changed from Needs feedback to Resolved
  • Assignee set to Jean-Philippe Lang
Actions #5

Updated by Jean-Philippe Lang over 7 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF