При создании файла CSV, вам нужно экранировать определенные символы? - PullRequest
4 голосов
/ 17 ноября 2009

Я генерирую файл CSV из Ruby. Проблема в том, что строка столбца будет содержать двойные кавычки, одинарные кавычки. Как я могу избежать этих вещей?

"Mary had a little so called \"lamb\"","34","none"
"something is not \"right\"","23","none"

Каждый столбец заключен в двойные кавычки, за которыми следует запятая (без пробелов), и записывается в файл.

Кроме того, как вы вставляете CSV в MySQL? Вам нужно использовать что-то вроде PHP mysql_real_escape_string?

Ответы [ 2 ]

6 голосов
/ 17 ноября 2009

Запись данных в формате CSV проста, самый простой способ - заменить каждый экземпляр двойной кавычки на 2 двойных кавычки, а затем заключить все в двойные кавычки. В качестве альтернативы, если ваши данные не содержат двойных кавычек, запятых, возвратов каретки, перевода строки или пробела в начале / конце, вам не нужно заключать в кавычки данные или беспокоиться об экранировании. Вы можете найти больше информации здесь .

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

2 голосов
/ 17 ноября 2009

Используйте FasterCSV. Не катите свое собственное поколение CSV.

http://fastercsv.rubyforge.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...