2008-10-16 62 views
1

它可以配置不發生?爲什麼當保存爲csv時,SQL Management Studio輸出空分隔字符?

我通常發現自己保存查詢爲.csv的結果,後來我的Unix機器上處理它。被分隔爲空的字符使我必須過濾這些字符,並且有點痛苦。

所以,這些都是問題:

  • 爲什麼會這樣呢?

編輯:

因爲它在UTF-16缺省輸出。那麼最簡單的轉換將是:

iconv -f utf-16 -t utf-8 origFile.csv > newFile.csv 
  • 是否可以以某種方式禁用?怎麼樣?

這裏的一個片這樣產生的文件的hexdump都的。每個字符之後是 空字符(00):

00000cf0 36 00 36 00 32 00 0d 00 0a 00 36 00 38 00 34 00 |6.6.2.....6.8.4.| 
00000d00 30 00 36 00 32 00 31 00 36 00 0d 00 0a 00 36 00 |0.6.2.1.6.....6.| 
00000d10 38 00 34 00 30 00 36 00 33 00 36 00 34 00 0d 00 |8.4.0.6.3.6.4...| 
00000d20 0a 00 36 00 38 00 34 00 30 00 36 00 38 00 34 00 |..6.8.4.0.6.8.4.| 
00000d30 32 00 0d 00 0a 00 36 00 38 00 34 00 30 00 37 00 |2.....6.8.4.0.7.| 
00000d40 30 00 32 00 31 00 0d 00 0a 00 36 00 38 00 34 00 |0.2.1.....6.8.4.| 
00000d50 30 00 37 00 37 00 39 00 37 00 0d 00 0a 00 36 00 |0.7.7.9.7.....6.| 
00000d60 38 00 34 00 30 00 37 00 39 00 32 00 31 00 0d 00 |8.4.0.7.9.2.1...| 
00000d70 0a 00 36 00 38 00 34 00 30 00 38 00 32 00 34 00 |..6.8.4.0.8.2.4.| 
00000d80 31 00 0d 00 0a 00 36 00 38 00 34 00 30 00 38 00 |1.....6.8.4.0.8.| 
00000d90 36 00 36 00 31 00 0d 00 0a 00 36 00 38 00 34 00 |6.6.1.....6.8.4.| 
00000da0 30 00 38 00 37 00 35 00 31 00 0d 00 0a 00 36 00 |0.8.7.5.1.....6.| 
00000db0 38 00 34 00 31 00 30 00 32 00 35 00 34 00 0d 00 |8.4.1.0.2.5.4...| 
00000dc0 0a 00 36 00 38 00 34 00 31 00 30 00 34 00 34 00 |..6.8.4.1.0.4.4.| 

回答

6

該文件以Unicode正在被輸出,而不是ASCII。 Unicode使用兩倍的位來表示每個字符,因此前面的00。

有可能是將其保存爲ANSI或ASCII的選項,這應該使用8個字符。

+0

是的,我很習慣了UTF-8我忘記UTF-16。 – 2008-10-16 10:23:12

+0

但我看不到設置編碼的選項 – 2008-10-16 10:24:33

1

在Unix上,我建議使用iconv -futf-16le -tutf-8來過濾輸出。 :-)

+0

是的,我已經這樣做了:)。爲什麼呢? – 2008-10-16 10:30:02

2

我知道這是一個古老的職位,而是爲了新訪客...

當您從Microsoft SQL Management Studio中保存數據,你會發現,「保存」按鈕有它旁邊的小箭頭。如果您選擇小箭頭,您可以選擇「使用編碼保存...」,這將允許您選擇您想要的編碼。

相關問題