Unicode 为什么SSI错误地加载我的撇号?

Unicode 为什么SSI错误地加载我的撇号?,unicode,ssis,character-encoding,Unicode,Ssis,Character Encoding,我有一个文本文件,其中包含包含以下数据的字段: Australian Children’s Television Fo ; 当我将其加载到sql server表时,它将作为 Australian Children’s Television Fo ; 为什么撇号会作为那些特殊字符加载 我尝试将它们作为unicode字符串读入,并使用nvarchar作为表中的数据类型。这些都不管用。对我有效 我将您的文本粘贴到一个新文件中,并使用TextPad所谓的“Unicode”编码(小尾端)保存,因

我有一个文本文件,其中包含包含以下数据的字段:

Australian Children’s Television Fo ;
当我将其加载到sql server表时,它将作为

Australian Children’s Television Fo ;
为什么撇号会作为那些特殊字符加载

我尝试将它们作为unicode字符串读入,并使用nvarchar作为表中的数据类型。这些都不管用。

对我有效

我将您的文本粘贴到一个新文件中,并使用TextPad所谓的“Unicode”编码(小尾端)保存,因为还有“Unicode(大尾端)”选项。在VisualStudio中,使用Unicode(带签名的UTF-8)代码页65001或Unicode代码页1200的另存为可以获得相同的效果

使用您选择的十六进制编辑器,打开文件。在这里,我使用xvi32,因为它是一个轻量级的、没有虚饰的工具

这些空格很好,这意味着它实际上是一个unicode文件

我的连接管理器看起来像

我的高级专栏页面是

复制我的包的Biml是微不足道的。安装并向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>


当我在连接管理器中检查Unicode时,我的数据完全损坏。我的代码页是(65001)UTF-8。我确实做了WSTR的高级选项。但我的桌子上仍然坐满了澳大利亚孩子™s我的输入文件btw是用UTF-8编码的。如果你复制我的步骤,你会得到一个正确解析的文件吗?如果是这样的话,那么这就变成了一个精炼你的问题以获得差异的问题。如果你不能与我展示的相匹配,那么你的机器就出了问题(可疑但奇怪的事情发生了)。