Понимание форматирования CSV: почему общие инструменты отличаются от стандартов RFC 4180?C#

Место общения программистов C#
Ответить
Гость
 Понимание форматирования CSV: почему общие инструменты отличаются от стандартов RFC 4180?

Сообщение Гость »


Я пытаюсь проанализировать множество файлов CSV (разделенных запятыми, в кодировке UTF-8) и столкнулся с повторяющейся проблемой.

Рассмотрим сценарий, в котором у меня есть три поля со значениями: A, «B», C. Согласно RFC 4180

Если для заключения полей используются двойные кавычки, то двойную кавычку, появляющуюся внутри поля, необходимо экранировать, поставив перед ней другую двойную кавычку

Исходя из этого, я понимаю, что правильное представление CSV должно быть A,"""B""",C . Однако многие файлы, созданные различными инструментами, форматируются как: : < code>"А, "Б"", С"

Это приводит к тому, что анализаторы CSV (например, CsvHelper в C#) интерпретируют такие строки как одно поле, а не как три отдельных поля.

Я что-то упустил? Почему этот, казалось бы, «неправильный» формат так часто используется в различных инструментах?

Для обсуждения вот более реалистичный пример:

"00AA12345,30.11.2023,30.11.2023,01.12.2023,01.12.2023,""BAS"",1 111 000.27,""НЗТ""," "Тест, ок"","""","""","""","""","""""

Мне нужно прочитать
[*]поле 0: идентификатор [*]поля с 1 по 4: дата [*]поле 5: дата [*]поле 6: строка [*]поле 7 и +: строка (может содержать двойные кавычки)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»