在 Utf-8 中创建文件,将结果编码为奇怪的字符



我正在使用 Utf-8 编码将存储过程的结果写入 Xml 文件。在 Sql Server Management Studio 上看到的 Xml 数据看起来Notepad正常。但是当我在记事本++Visual Studio Code上使用Utf-8编码打开文件时,我看到所有äöå字符都无法识别。

SET @sqlCommand =
     'bcp "EXEC '  +@db + '.dbo.GetXmlDataKund" queryout "' + @filePath + @fileName + ' "  -T   -c -C65001 -C'
EXEC master..xp_cmdshell @sqlCommand

想知道我做错了什么?

您的 SQL Server 版本可能不支持 UTF-8。看这里。

本质:"版本 13 (SQL Server 2016( 之前的版本不支持代码页 65001(UTF-8 编码(。以 13 开头的版本可以将 UTF-8 编码导入早期版本的 SQL Server。

如果您有 SQL Server 2014 SP 2,则可以使用此更新添加对 UTF-8 的支持。

要改用 UTF-16,应添加 -w 参数。

最新更新