Как и где вы кодируете параметры заголовка и кодировки для CSV-файлов?

#csv #validation #specifications #data-processing #rfc4180

Вопрос:

Спецификация CSV (RFC 4180) определяет header и charset параметры, но, как ни странно, не указывает, куда они идут и как они кодируются. Ибо header в нем говорится:

Параметр «заголовок» указывает на наличие или отсутствие строки заголовка. Допустимыми значениями являются «присутствует» или «отсутствует».

Но куда это помещается в CSV-файле или потоке? И куда же charset он девается?

См. раздел 3 спецификации для бита параметров. Весь документ состоит всего из нескольких страниц фактического содержимого, как и следовало ожидать для спецификации CSV, но в нем отсутствуют важные детали. Обратите внимание, что я спрашиваю не о сценарии взаимодействия веб-сервера с браузером, в котором были бы поля заголовка HTTP для типа MIME или кодировки, а скорее об общем случае файлов и потоков CSV.

Ответ №1:

Подтверждение того, что в файле данных CSV действительно нет места для размещения этих полей метаданных в виде файла или потока.

Эти два поля, как вы упомянули, предназначены только для случаев, когда обмен CSV — файлом осуществляется с помощью протокола, поддерживающего MIME, такого как HTTP.

Другие форматы нашли различные способы решения этой проблемы. Например, JSON должен быть закодирован с использованием UTF-8. XML имеет кодировку в прологе.