2011-02-01 69 views
0

來自CSV規格(RFC 4180),Spaces are considered part of a field and should not be ignored。顯然,如果該字段包含雙引號,它應該保留引號內的空格。CSV字段中的報價之前的空格

我的問題是,雙引號之外的空格呢?我可以看到發生這種情況的唯一方法是生成CSV的工具沒有正確執行。

例子:one, "two" ,three

應該前後空間 「兩節」 被列入?

回答

0

即細胞是無效的 - 正確的代碼行應該是:

one," ""two"" ",three 

雙引號也必須進行轉義(如雙雙引號),因爲它們被用作轉義序列。如果你不想保留two左右的引號,從技術上來說,這行有兩個無效的東西 - (1)引號前後的空格和(2)單元格周圍有引號,但沒有東西逃過一劫。 CSV要求如果單元格內容中有逗號或引號,則只能在單元格周圍引用引號。

如果我是你的情況,我會在寬大的一方犯錯。

+0

我的意思是「一個」,「兩個」,「三個」,而不是「一個」,「兩個」,「三個」。所以它寫得不正確。是否應該假設該領域在現場沒有引用不恰當的文字?或者應該假設報價是引用字段的一部分,並且在之前和/或之後有間隔? – 2011-02-01 14:56:26

0

我使用BULK INSERT和BCP格式文件處理了這個問題,這對處理引號和逗號分隔很棘手。如果可能存在變化,請使用, "定界符。我們使用最小公用分隔符,因此在您的示例中使用了逗號,然後刪除了不需要的所有雙引號。

但它也可能是您的源數據只有逗號分隔,這是該字段的實際內容。無論哪種方式,我都會在加載字段時拋出引號,無論採用何種方法。