2012-11-20 22 views
0

我的目標是在SSIS腳本組件中輸出一個長字符串到BlobColumn(文本)中,這裏是執行它的代碼。從bytearray/blobColumn刪除NULs#

byte[] blobdata = GetBytes(notes.Substring(0, (notes.Length < 16000 ? notes.Length : 16000))); 
blobdata = blobdata.SkipWhile(x => x == 0).ToArray(); //Remove the nulls? 
Row.SCNotes.AddBlobData(blobdata); 

當我打開記事本+ +,我已經輸出這個領域,它看起來像這樣

原始字符串的文件:ABC

輸出:一個[NUL] B [NUL]Ç [nul]

我是否在做任何代碼錯誤?我怎樣才能不輸出空值?

+0

幫我理解你在做什麼。你是否試圖將數據庫中的blob字段的內容寫入文件?你是否試圖將二進制數據導入數據庫? 「筆記」數據來自哪裏? – billinkc

+0

您可以假定筆記是從源文件中的字段派生的非常大的字符串。然後嘗試將其插入到新的文本輸出列中。 – kouri

回答

0

明白了。在C#字符串存儲爲UTF16這將導致此問題

byte[] blobdata = Encoding.UTF8.GetBytes(strNotes); 

解決它通過轉換爲UTF-8,其去除的空值中的每個字符之間。