Ошибки синтаксического анализа из-за специальных символов в DNS-записи TXT

У меня проблемы с анализом записей DNS TXT, полученных с помощью сценария, который я написал. Сценарий принимает записи, записи ns и записи txt и записывает их в файл.csv. Я использую точку с запятой для разделения записей и "в качестве разделителя текста.

Поскольку записи txt содержат специальные символы, такие как ", это приводит к ошибкам синтаксического анализа, когда я пытаюсь открыть файл.csv, например, в электронных таблицах.

IN TXT "verification=12345678901234567890"

Если в записи есть несколько записей, это приводит к " происходят в записи и, например, "" в конце записи. Ведущий к cdn.net."verification=12345678901234567890"";"...

Есть ли достойный способ предотвратить такие проблемы внутри скрипта? Использование нескольких разделителей текста кажется одним из решений, но также и уродливым хаком.

1 ответ

CSV-файлы - это просто текстовые файлы, отформатированные с разделителем, который вы можете выбрать. Таким образом, в основном разделитель - это не то, что вы вводите в документе, который вы пишете, а тот, кто хочет открыть файл, который может выбрать разделитель. " только один по умолчанию, но может быть изменен.

В настоящее время любое приличное программное обеспечение, которое обрабатывает файлы CSV, позволяет пользователям выбирать разделитель. Я бы предложил выбрать символ, который, как вы уверены, не будет использоваться в качестве разделителя документа (например: $, #,...) и скажите людям, которые должны открыть документ, что этим символом является разделитель вместо ",

Другой способ - открыть файл самостоятельно с выбранным разделителем и сохранить файл в другом формате (.xlsнапример) и отправьте этот последний файл людям, которые должны прочитать документ. Таким образом, им не нужно выбирать разделители при открытии.

Другие вопросы по тегам