2015-04-03 71 views
0

我有一個文本文件,其中包含以下數據的字段。澳大利亞兒童電視臺;當我將它加載到一個sql server表中時,它將它加載爲Australian Children's Television Fo;爲什麼撇號被加載爲特殊字符?我試着以unicode字符串讀取它們,並在表中使用nvarchar作爲數據類型。它沒有任何作用。SSIS的撇號加載錯誤

回答

1

適合我。

enter image description here

我把你的文字,粘貼到一個新的文件,並保存什麼TextPad電話「的Unicode」編碼(小端)作爲也有「的Unicode(大端)」選項。你可以在Visual Studio中相同的效果與另存爲是Unicode,(UTF-8簽字) - 代碼頁65001或Unicode代碼頁 - 1200

enter image description here

使用你選擇的十六進制編輯器打開檔案。在這裏我使用XVI32,因爲它是一個輕量級的,沒有多餘的裝飾工具

enter image description here

這些空間也有不錯的,這意味着它真的是一個Unicode文件。

我的連接管理器看起來像

enter image description here

和我的先進列頁面

enter image description here

的BIML重現我的包是微不足道的。安裝BIDS Helper向IS項目添加一個新的biml文件。在將第三行調整爲指向您創建爲unicode的文件後,將以下內容粘貼到那裏。保存,右鍵單擊並生成SSIS包

<Biml xmlns="http://schemas.varigence.com/biml.xsd"> 
    <Connections> 
     <FlatFileConnection FilePath="C:\ssisdata\so_29439216.txt" FileFormat="FFF" Name="FF_CM" /> 
    </Connections> 
    <FileFormats> 
     <FlatFileFormat Name="FFF" IsUnicode="true" FlatFileType="Delimited"> 
      <Columns> 
       <Column Name="SourceRow" DataType="String" Length="50" Delimiter="CRLF" InputLength="50" /> 
      </Columns> 
     </FlatFileFormat> 
    </FileFormats> 
    <Packages> 
     <Package ConstraintMode="Linear" Name="so_29439216"> 
      <Tasks> 
       <Dataflow Name="DFT Source"> 
        <Transformations> 
         <FlatFileSource ConnectionName="FF_CM" Name="FFS"></FlatFileSource> 
         <DerivedColumns Name="DFT Dataviewer anchor point"></DerivedColumns> 
        </Transformations> 
       </Dataflow> 
      </Tasks> 
     </Package> 
    </Packages> 
</Biml> 
+0

當我在連接管理器中檢查Unicode時,我的數據完全被損壞。我的代碼頁是(65001)UTF-8。我確實將WSTR作爲高級選項。但是我的桌子仍然充斥着澳大利亞的孩子們。我的輸入文件btw以UTF-8編碼。 – 2015-04-03 22:59:17

+0

如果你複製我的步驟,你會得到一個正確解析的文件嗎?如果確實如此,那麼它就成了一個改進你的問題以解決變化的問題。如果你無法匹配我所展示的內容,那麼你的機器出現了問題(可疑但奇怪的事情發生)。 – billinkc 2015-04-04 04:29:34