小编Fei*_*len的帖子

不显示从文件导入的特殊字符

该场景是一个 SQL Server 实例,一个主要使用 BULK INSERT 操作提供数据的数据库,并且插入的一些文本包含特殊字符,例如\xc3\xb1因为我在西班牙语环境中工作。

\n\n

因此,在最初的小测试之后,我意识到当我运行简单的时,这些特殊字符没有正确显示select,所以我开始检查我能想到的所有内容:

\n\n
    \n
  • 文件编码:要批量插入的文件具有正确的编码:ANSI
  • \n
  • 数据库编码:数据库具有正确的编码(感谢上帝):select collation_name from sys.databases where name='DBNAME';结果为SQL_Latin1_General_CP1_CI_AS\n\n
      \n
    • Latin1:使用的字符集。这很适合我
    • \n
    • 一般:这里没什么真正有趣的
    • \n
    • CP1:这意味着它使用代码页 1,简而言之,意味着用于编码 WIN-1252 的代码页 1252 <=> 代码页,与 Latin1 非常相似
    • \n
    • CI:不区分大小写
    • \n
    • AS:区分重音,因此 \xc3\xa1 与 a 不同
    • \n
  • \n
  • 将数据导出到文件并检查:文件编码是ANSI ,但数据显示不正确,没有特殊字符,而是我发现一些其他字符使文本难以阅读。
  • \n
\n\n

通过这些测试,我得出结论,数据未正确存储,这就是数据未正确显示和导出的原因。我在互联网上找到的几乎每个解决方案都建议使用nvarchar而不是varchar字符串数据类型字段,但这并不能解决这种情况。是什么破坏了我的插入?

\n

sql-server import encoding bulk-insert

3
推荐指数
1
解决办法
8415
查看次数

标签 统计

bulk-insert ×1

encoding ×1

import ×1

sql-server ×1