SQL 服务器 OPENROWSET(BULK 'C:\Temp\Test.xml', SINGLE_CLOB) Returns 前导字符乱码
SQL Server OPENROWSET(BULK 'C:\Temp\Test.xml', SINGLE_CLOB) Returns Garbled Leading Characters
当使用 OPENROWSET
将 xml 文件的内容写入 nvarchar(MAX)
列时,我的前导字符出现乱码。
即使在没有插入的情况下执行 select,结果也是一样的。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test.xml', SINGLE_CLOB) Xml
结果:
我尝试了各种 CODEPAGE
选项,但得到了相同的结果。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test.xml', CODEPAGE='RAW', SINGLE_CLOB) Xml
在记事本中文件看起来不错。
解决方案是将 xml 文件的编码从 UTF-8 更改为 Unicode,然后使用 SINGLE_NCLOB 而不是 SINGLE_CLOB。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test2.xml', SINGLE_NCLOB) Xml
当使用 OPENROWSET
将 xml 文件的内容写入 nvarchar(MAX)
列时,我的前导字符出现乱码。
即使在没有插入的情况下执行 select,结果也是一样的。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test.xml', SINGLE_CLOB) Xml
结果:
我尝试了各种 CODEPAGE
选项,但得到了相同的结果。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test.xml', CODEPAGE='RAW', SINGLE_CLOB) Xml
在记事本中文件看起来不错。
解决方案是将 xml 文件的编码从 UTF-8 更改为 Unicode,然后使用 SINGLE_NCLOB 而不是 SINGLE_CLOB。
SELECT Xml.BulkColumn
FROM OPENROWSET(BULK 'C:\Temp\Test2.xml', SINGLE_NCLOB) Xml