导入文本文件时,SQL Server 2008 不支持 UTF8 编码的代码页 65001

导入文本文件时,SQL Server 2008 不支持 UTF8 编码的代码页 65001

似乎 SQL Server 2008 在使用批量插入时不支持代码页 65001。如果我使用其他代码页,导入时我的数据会被损坏。有没有办法使用脚本在 SQL Server 2008 中正确插入我的 UTF8 数据?

答案1

SQL Server 支持 unicode,但与 Java 一样,它仅对 NCHAR、NVARCHAR 和 NTEXT 字段中的 unicode 数据使用 UTF-16 Little Endian(也称为 UCS-2)。我假设您说的是 BCP 实用程序,它在导入时仅支持 UCS-2 数据(它不会转换 UTF-8)。

其他 SQL 服务器工具可能支持 UTF-8 数据的即时转换(例如,SQL Server Integration Services (SSIS))。但是,如果您偏好使用 BCP,最好使用开源命令行工具预处理文件,将 UTF-8 转换为 UTF-16 Little Endian。

相关内容