Ошибки синтаксического анализа из-за специальных символов в DNS-записи TXT
У меня проблемы с анализом записей DNS TXT, полученных с помощью сценария, который я написал. Сценарий принимает записи, записи ns и записи txt и записывает их в файл.csv. Я использую точку с запятой для разделения записей и "в качестве разделителя текста.
Поскольку записи txt содержат специальные символы, такие как ", это приводит к ошибкам синтаксического анализа, когда я пытаюсь открыть файл.csv, например, в электронных таблицах.
IN TXT "verification=12345678901234567890"
Если в записи есть несколько записей, это приводит к "
происходят в записи и, например, ""
в конце записи. Ведущий к cdn.net."verification=12345678901234567890"";"...
Есть ли достойный способ предотвратить такие проблемы внутри скрипта? Использование нескольких разделителей текста кажется одним из решений, но также и уродливым хаком.
1 ответ
CSV-файлы - это просто текстовые файлы, отформатированные с разделителем, который вы можете выбрать. Таким образом, в основном разделитель - это не то, что вы вводите в документе, который вы пишете, а тот, кто хочет открыть файл, который может выбрать разделитель. "
только один по умолчанию, но может быть изменен.
В настоящее время любое приличное программное обеспечение, которое обрабатывает файлы CSV, позволяет пользователям выбирать разделитель. Я бы предложил выбрать символ, который, как вы уверены, не будет использоваться в качестве разделителя документа (например: $
, #
,...) и скажите людям, которые должны открыть документ, что этим символом является разделитель вместо "
,
Другой способ - открыть файл самостоятельно с выбранным разделителем и сохранить файл в другом формате (.xls
например) и отправьте этот последний файл людям, которые должны прочитать документ. Таким образом, им не нужно выбирать разделители при открытии.