2015-04-03 45 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