[转]SQL - Create XML - How to set Unicode UTF-8
时间:2022-03-15 08:49
本文转自:
I found a solution via another way. (don‘t remember which website I found it) See code below. This code will export my file in UTF-8-BOM encoding.
DECLARE @OLE INT
EXECUTE sp_OACreate ‘ADODB.Stream‘, @OLE OUTPUT
DECLARE @Text XML
SET @Text = N‘This is the 测试测试 test string‘; --(SELECT TOP(1) [xml] from VW_WARP_LEVERANCIERS_XML)
DECLARE @Converted NVARCHAR(MAX)
SET @Converted = CONVERT(nvarchar(MAX), @Text)
EXECUTE sp_OASetProperty @OLE, ‘Type‘, 2 --1 = binary, 2 = text
EXECUTE sp_OASetProperty @OLE, ‘Mode‘, 3 --0 = not set, 1 read, 2 write, 3 read/write
EXECUTE sp_OASetProperty @OLE, ‘Charset‘, ‘UTF-8‘ --‘ISO-8859-1‘
EXECUTE sp_OASetProperty @OLE, ‘LineSeparator‘, ‘adLF‘
EXECUTE sp_OAMethod @OLE, ‘Open‘
EXECUTE sp_OAMethod @OLE, ‘WriteText‘, NULL, @Converted --text method
--Commit data and close text stream
EXECUTE sp_OAMethod @OLE, ‘SaveToFile‘, NULL, ‘d:\1.txt‘, 2 --1 = notexist 2 = overwrite
EXECUTE sp_OAMethod @OLE, ‘Close‘
EXECUTE sp_OADestroy @OLE
EXECUTE sp_OADestroy @OLE