0

我已经搜索了这个特定的解决方案,虽然我找到了类似的查询,但我还没有找到一个可以解决我的问题的问题。我正在手动导入一个制表符分隔的数据文本文件,该文件在某些​​字段中包含国际字符。

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

它在 C 和 D 之间是一个破折号或破折号。它可以很好地复制和粘贴,但是当数据被导入 SQL Server 2000 时,它最终看起来像这样:

Exhibit Hall C–D

nvarchar就像我说的那样,该字段是通过企业管理器手动导入的。关于如何解决这个问题的任何想法?

4

2 回答 2

0

我会尝试使用带有参数的bcp实用程序(http://technet.microsoft.com/en-us/library/ms162802(v=sql.90).aspx) 。-w

您可能还想检查输入文件的文本编码。

于 2013-08-09T07:44:47.410 回答
0

问题是导入文件和 SQL Server 之间的编码不匹配。以下方法适用于我在 SQL Server 2000 中使用默认编码 (SQL_Latin1_General_CP1_CI_AS) 导入数据库:

  1. 使用自由文本编辑器Notepad++打开 .csv/.tsv 文件,并确保特殊字符以正常开头(如果不是,请尝试 Encoding|Encode in...)

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

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

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

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

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

  7. 完整的导入向导

于 2013-08-09T10:53:30.513 回答