【发布时间】:2023-03-05 05:10:02
【问题描述】:
我有一个简单的数据转换工具,它可以产生的输出之一是 csv 文件。
这在英国非常有效,但是当我将它运送给德国客户时,我遇到了一些问题。具体来说,他们使用“,”来表示浮点数中的小数点,反之亦然。这意味着当他们在 excel 中打开他们的数据文件时,至少可以说结果相当混乱:-)
替换正确的字符是微不足道的,但我如何检测是否应用它?
编辑:
所以这个:
a,b,c
1.1,1.2,1.3
"1.1",1,2,"1,3"
"this,is,multi-
-line",this should be column 2, row 4
a;b;c
"a;b","c"
..在英国加载到 excel 时是这样的:
+----------------+-----+-----+-----+
| a | b | c | |
+----------------+-----+-----+-----+
| 1.1 | 1.2 | 1.3 | |
+----------------+-----+-----+-----+
| 1.1 | 1 | 2 | 1,3 |
+----------------+-----+-----+-----+
| this,is,multi- | | | |
| -line | 2 | 4 | |
+----------------+-----+-----+-----+
| a;b;c | | | |
+----------------+-----+-----+-----+
| a;b | c | | |
+----------------+-----+-----+-----+
..但是在德国会发生什么?
【问题讨论】:
-
csv 分隔符不 依赖于语言环境:它只是文件格式的属性;如上所述,您应该引用或转义出现在单元格值中的任何分隔符
-
道歉;我不知道该怎么表达。所以这是我需要正确处理的小数分隔符?我的客户建议他们使用分号作为 .csv 文件的分隔符...?
-
查看维基百科以获取有关 'c'sv 文件的参考:en.wikipedia.org/wiki/Comma-separated_values ...这表明在德国他们使用分号...?
-
荷兰和德国都使用这两种格式 - 但是分号格式并不严格遵循 RFC,建议使用逗号,并在任何需要转义的值上加上双引号。
-
重新编辑:德国/荷兰现在应该与英国相同。 (即一个文件只能有一个分隔符,一旦设置了逗号,分号将被视为另一个字符。
标签: .net c++-cli locale culture