我搜索过这个特定的解决方案,虽然我发现了类似的问题,但我找不到解决问题的方法。我手动导入一个制表符分隔的文本文件,其中包含某些字段中包含国际字符的数据。
这是一个这样的角色:Exhibit Hall C–D
它既可以是短片,也可以是C& C之间的短划线。 D.它复制和粘贴很好,但是当数据被带入SQL Server 2000时,它最终看起来像这样:
Exhibit Hall C–D
该字段为nvarchar
,就像我说的,我正在通过Enterprise Manager手动导入。关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
我会尝试将bcp
实用程序(http://technet.microsoft.com/en-us/library/ms162802(v=sql.90).aspx)与-w
参数一起使用。
您可能还想检查输入文件的文本编码。
答案 1 :(得分:0)
问题是导入文件和SQL Server之间的编码不匹配。在SQL Server 2000中使用默认编码(SQL_Latin1_General_CP1_CI_AS)导入数据库时,以下方法适用于我:
使用自由文本编辑器Notepad++打开.csv / .tsv文件,并确保特殊字符在开头时显示正常(如果没有,请尝试编码|编码...)
选择编码|转换为UCS-2 Little Endian
另存为新的.csv / .tsv文件
在SQL Server企业管理器的DTS导入/导出向导中,选择新文件作为数据源(源类型:文本文件)
如果没有自动检测到,请选择文件类型:Unicode(在此页面的预览中,unicode字符仍然看起来像黑色块)
在下一页的“指定列分隔符”上,选择正确的分隔符。选择后,Unicode字符应在“预览”窗格中正确显示
完整导入向导