似乎 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。