Das XML, das Sie erhalten, ist korrekt. Es ist XML , kein Text und von einem XML-Parser als XML lesbar. Sonderzeichen werden richtig maskiert, wie sie sein sollten. Welches Client-Modul auch immer Sie haben, das dieses XML konsumiert, sollte es als XML analysieren, nicht als Text, und dann wird es richtig angezeigt.
Aktualisieren:
Falls dies nicht klar ist, alles, was Sie in Ihrer Abfrage tun müssen, ist, XML als XML und Text als Text zu behandeln, nicht XML als Text zu mischen, dh:
;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