来自CSV规范(RFC 4180),Spaces are considered part of a field and should not be ignored
。显然,如果该字段包含双引号,则应保留引号内的空格。
我的问题是,双引号之外的空格怎么样?我能看到这种情况的唯一方法是生成CSV的工具没有正确完成。
示例:one, "two" ,three
是否应包括“两个”之前和之后的空格?
答案 0 :(得分:0)
该单元格无效 - 要正确编码该行应该是:
one," ""two"" ",three
双引号也必须被转义(作为双引号),因为它们被用作转义序列。如果您不想保留two
周围的引号,从技术上讲,对于该行有两件事无效 - (1)引号前后的空格和(2)单元格周围有引号的事实但没有什么可以逃脱的。 CSV要求如果单元格内容中有逗号或引号,则单元格周围只能有引号。
如果我在你的情况下,我会在宽大的方面犯错。
答案 1 :(得分:0)
我使用BULK INSERT和BCP格式文件处理了这个问题,这对于引用和逗号分隔来说是很棘手的。如果可能存在变化,请使用, "
分隔符我们使用了最低的公共分隔符,因此在您的示例中使用逗号,然后删除了所有双引号所需的内容。
但也可能是您的源数据仅以逗号分隔,这是该字段的实际内容。无论哪种方式,我都会在加载字段时抛出引号,无论采用何种方法。