При написании CSV вам, очевидно, нужно добавить «,» между каждым значением, чтобы можно было определить, где разделить информацию, например, в Excel.

Например:

Name,Age
Bob,23

Разделим эти данные на 2 столбца. Однако в некоторых случаях поле может уже содержать ",".

Program,Version,Text
Hello_World,1,Hello, World!

Этот экземпляр разделит это на 4 столбца, что нам явно не нужно. Легкий способ взломать это - использовать Regex.Replace, чтобы заменить любые существующие символы "," на "." вместо этого, например, но это изменит значение данных.

Вместо этого, могу ли я изменить значение символа «,» так, чтобы CSV не распознал его как «разделенный» символ, без фактического добавления символов или изменения символа на что-то другое? Например:

Program,Version,Text,Author
Hello_World,1,Hello, World!,Ben

Это выглядит так:

Program     | Version | Text          | Author
Hello_World | 1       | Hello, World! | Ben

Примечание: создание CSV с разделителями табуляции - простое решение, но я ищу другие потенциальные решения, если они существуют.

0
Ben 5 Июн 2018 в 09:29

1 ответ

Лучший ответ

Правильный способ сделать это - заключить поле в двойные кавычки:

Program,Version,Text,Author
Hello_World,1,"Hello, World!",Ben

Когда само поле содержит двойные кавычки, их нужно экранировать другой двойной кавычкой:

"Monitor 24"", Samsung"

Дополнительная информация: https://tools.ietf.org/html/rfc4180.

0
Danny_ds 5 Июн 2018 в 11:21