2009-12-10 73 views
0

我有一個字符串,其中包含特殊字符(如商標符號等)。該字符串被設置爲XML節點值。但是特殊字符在XML中不能正確呈現,顯示??。這是即時通訊使用它。C#特殊字符不能在XML中正常顯示

String str=xxxx; //special character string 

XmlNode node = new XmlNode(); 
node.InnerText = xxxx; 

我試圖HttpUtility.htmlEncode(xxxx),但其轉換成 「&放大器;#8482;」所以xml的輸出是「&#8482」;而不是™ 我也試過XmlConvert.ToString()XmlConvert.EncodeName但它給了??

+0

它在哪裏顯示'??' ?在瀏覽器中? – 2009-12-10 11:31:10

+0

顯示??在IE6中存在特殊字符的地方,FF3 OcwWeb /航空航天/ 16-61Aerospace-DynamicsSpring2003 /新增® SectionName.xml harshildesai 2009-12-10 12:54:39

回答

3

我強烈懷疑問題在於您如何查看XML。你有沒有確定,無論你正在查看它使用正確的編碼?

如果保存XML然後重新加載並將內部文本作爲字符串獲取,它是否具有正確的值?如果是這樣,問題在哪裏?

你不應該自己執行額外的編碼 - 讓XML API完成他們的工作。

0

我以前也有一些使用htmlEncode()的字符問題。下面是編寫XML的不同方式的一個很好的例子:Different Ways to Escape an XML String in C#。請查看#3(System.Security.SecurityElement.Escape())和#4(System.Xml.XmlTextWriter),這些是我通常使用的方法。