手动导入到选项卡分隔文本文件的SQL Server 2000不会格式化国际字符

时间:2013-08-08 20:11:00

标签: sql-server encoding sql-server-2000

我搜索过这个特定的解决方案,虽然我发现了类似的问题,但我找不到解决问题的方法。我手动导入一个制表符分隔的文本文件,其中包含某些字段中包含国际字符的数据。

这是一个这样的角色:Exhibit Hall C–D

它既可以是短片,也可以是C& C之间的短划线。 D.它复制和粘贴很好,但是当数据被带入SQL Server 2000时,它最终看起来像这样:

Exhibit Hall C–D

该字段为nvarchar,就像我说的,我正在通过Enterprise Manager手动导入。关于如何解决这个问题的任何想法?

2 个答案:

答案 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)导入数据库时​​,以下方法适用于我:

  1. 使用自由文本编辑器Notepad++打开.csv / .tsv文件,并确保特殊字符在开头时显示正常(如果没有,请尝试编码|编码...)

  2. 选择编码|转换为UCS-2 Little Endian

  3. 另存为新的.csv / .tsv文件

  4. 在SQL Server企业管理器的DTS导入/导出向导中,选择新文件作为数据源(源类型:文本文件)

  5. 如果没有自动检测到,请选择文件类型:Unicode(在此页面的预览中,unicode字符仍然看起来像黑色块)

  6. 在下一页的“指定列分隔符”上,选择正确的分隔符。选择后,Unicode字符应在“预览”窗格中正确显示

  7. 完整导入向导