构建一个 CSV,并在条目字符串中保留“,”?

Build a CSV, and keep "," in entry string?

写 CSV 时,显然需要在每个值之间添加一个“,”,以便它可以识别在何处拆分信息,例如在 excel.

例如:

Name,Age
Bob,23

将此数据分成 2 列。但是,在某些情况下,字段可能已经包含“,”。

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

此实例会将其拆分为 4 列,这显然是我们不希望的。一个简单的破解方法是使用 Regex.Replace 将任何现有的“,”字符更改为“.”。例如,但是这会改变数据的值。

相反,有什么方法可以更改“,”字符的值,以便 CSV 不将其识别为 "split" 字符,而无需实际添加字符或将字符更改为还有什么?例如:

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

因此显示为:

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

Post-注意:创建制表符分隔的 CSV 是一个简单的解决方案,但我正在寻找其他可能的解决方案(如果存在的话)。

正确的做法是用双引号将字段括起来:

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

当字段本身包含双引号时,需要用另一个双引号转义:

"Monitor 24"", Samsung"

更多信息:https://www.rfc-editor.org/rfc/rfc4180