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

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

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

其他SQL Server工具可以支持对UTF-8数据(例如,SQL Server Integration Services(SSIS))的即时转换。 但是,使用开源命令行工具对UTF-8进行UTF-16 Little Endian预处理,然后使用BCP(如果这是您的工具首选项),可能会更好。