我有一个文本文件,其中包含以下数据的字段:
Australian Children’s Television Fo ;
当我将它加载到sql server表时,它将其加载为
Australian Children’s Television Fo ;
为什么撇号会被加载为那些特殊字符?
我尝试将它们作为unicode字符串读取并使用nvarchar作为表中的数据类型。它都不起作用。
答案 0 :(得分:1)
适合我。
我把你的文字粘贴到一个新文件中并用TextPad称为“Unicode”编码(小端)保存,因为还有“Unicode(大端)”选项。您可以在Visual Studio中使用另存为Unicode(带签名的UTF-8) - 代码页65001或Unicode代码页 - 1200获得相同的效果。
使用您选择的十六进制编辑器,打开文件。这里我使用的是xvi32,因为它是一个轻量级的,没有多余的工具
那些空间很好,这意味着它实际上是一个unicode文件。
我的连接管理器看起来像
我的高级专栏页面是
重现我的包裹的Biml是微不足道的。安装BIDS Helper将新的biml文件添加到IS项目中。在调整第三行以指向您创建为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>