У меня есть такая строка в моем CSV:
"Samsung U600 24"","10000003409","1","10000003427"
Кавычка рядом с 24
используется для выражения дюймов, в то время как кавычка рядом с этой кавычкой закрывает поле. Я читаю строку с, fgetcsv
но синтаксический анализатор делает ошибку и читает значение как:
Samsung U600 24",10000003409"
Я попытался поставить обратную косую черту перед кавычками, но потом я получил обратную косую черту в названии:
Samsung U600 24\"
Есть ли способ, как правильно избежать этого в CSV, чтобы значение было Samsung U600 24"
, или мне нужно пересмотреть его в процессоре?
Ответы:
Используйте 2 цитаты:
источник
Не только двойные кавычки, вам понадобятся одинарные кавычки (
'
), двойные кавычки ("
), обратный слеш (\
) и NUL (байт NULL).Используйте,
fputcsv()
чтобы писать иfgetcsv()
читать, что обо всем позаботится.источник
fputcsv()
показывает, как вы можете использовать,fputcsv()
когда вы хотите выводить в формате CSV в браузер вместо реального файла.Я знаю, что это старый пост, но вот как я решил его (наряду с преобразованием нулевых значений в пустую строку) в C #, используя метод расширения.
Создайте статический класс с чем-то вроде следующего:
Затем для каждой строки, которую вы пишете в CSV, вместо:
Вы просто делаете:
источник
Если значение содержит запятую, символ новой строки или двойные кавычки, строка должна быть заключена в двойные кавычки. Например: "Символ новой строки в этом поле \ n".
Вы можете использовать ниже онлайн инструмент, чтобы избежать "" и, операторы. https://www.freeformatter.com/csv-escape.html#ad-output
источник