XML bạn nhận được là chính xác. Đó là XML , không phải văn bản và có thể đọc được dưới dạng XML bởi trình phân tích cú pháp XML. Các ký tự đặc biệt được thoát đúng cách, đúng như vậy. Bất kỳ mô-đun máy khách nào bạn có sử dụng XML đó sẽ phân tích cú pháp nó dưới dạng XML, không phải dưới dạng văn bản, và sau đó nó sẽ hiển thị đúng cách.
Cập nhật:
Trong trường hợp không rõ ràng, tất cả những gì bạn cần làm trong truy vấn của mình là coi XML là XML và văn bản là văn bản, không kết hợp XML dưới dạng văn bản, tức là:
;WITH CodeValues AS
(
SELECT
Number,SUBSTRING(@R,Number,1) AS R,ASCII(SUBSTRING(@U,Number,1)) AS UA
FROM Numbers
WHERE Number<=LEN(@R)
)
, XmlValues AS (
SELECT
t.RowID
,(SELECT
''+c.R
FROM Numbers n
INNER JOIN CodeValues c ON ASCII(SUBSTRING(t.Unreadable,n.Number,1))=c.UA
WHERE n.Number<=LEN(t.Unreadable)
FOR XML PATH(''), TYPE
) AS readable
FROM @TestTable t)
SELECT x.RowId,
x.readable.value('.', 'VARCHAR(8000)') as readable
FROM XmlValues AS x