De XML die u krijgt is correct. Het is XML , geen tekst, en leesbaar als XML door een XML-parser. Speciale tekens zijn correct ontsnapt, zoals ze zouden moeten zijn. Welke clientmodule je ook hebt die die XML verbruikt, moet het als XML ontleden, niet als tekst, en dan wordt het correct weergegeven.
Bijwerken:
Voor het geval dat niet duidelijk is, hoeft u in uw zoekopdracht alleen XML als XML en tekst als tekst te behandelen, en XML niet als tekst te mixen, bijvoorbeeld:
;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