आपको जो एक्सएमएल मिलता है वह सही है। यह XML है , टेक्स्ट नहीं, और XML पार्सर द्वारा XML के रूप में पढ़ने योग्य। विशेष पात्र ठीक से बच निकले हैं, जैसा कि उन्हें होना चाहिए। आपके पास जो भी क्लाइंट मॉड्यूल है, वह उपभोग करता है कि एक्सएमएल को इसे एक्सएमएल के रूप में पार्स करना चाहिए, टेक्स्ट के रूप में नहीं, और फिर यह ठीक से प्रदर्शित होगा।
अपडेट करें:
यदि स्पष्ट नहीं है, तो आपको अपनी क्वेरी में केवल XML को XML और टेक्स्ट को टेक्स्ट के रूप में देखना है, XML को टेक्स्ट के रूप में नहीं मिलाना है, अर्थात:
;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