DECLARE @XML NVARCHAR(MAX)
DECLARE @bcp varchar(500)
DECLARE @FullPath varchar(500)
SET @XML = N'<?xml version="1.0" encoding="UTF-16"?>'+
(
SELECT 'text1' as col1,
'text2' as col2
FOR XML PATH('col'), ROOT('record'), ELEMENTS XSINIL
)
if ISNULL(OBJECT_ID ('tempdb..##TXML'),0) > 0 DROP TABLE ##TXML
CREATE TABLE ##TXML (XMLText NVARCHAR(MAX))
insert into ##TXML select @XML
set @FullPath = 'C:\Temp\test.xml'
set @bcp = 'bcp "SELECT XMLText from ##TXML" queryout "' + @FullPath + '" -T -w -S '+@@SERVERNAME
EXEC xp_cmdshell @bcp
DROP table ##TXML
上面是使用Encoding UTF-16导出XML文件的示例。 输出说:
document labeled utf-16 but has utf-8 content
我尝试使用XML数据类型,但它将在没有标题的情况下导出。
有专家可以解释为什么我不能拥有utf-16内容吗?
谢谢。