0

我有一个包含特殊字符的字符串,例如(商标符号等)。此字符串设置为 XML 节点值。但是特殊字符在 XML 中没有正确呈现,显示 ??。这就是我使用它的方式。

String str=xxxx; //special character string

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

我试过HttpUtility.htmlEncode(xxxx)了,但它把它转换成“™” 所以xml的输出是“™”;而不是™我也尝试过XmlConvert.ToString()XmlConvert.EncodeName但它给了??

4

2 回答 2

3

我强烈怀疑问题在于您如何查看 XML。您是否确定您正在查看的任何内容都使用正确的编码?

如果您保存 XML 然后重新加载它并将内部文本作为字符串获取,它是否具有正确的值?如果是这样,问题出在哪里?

您不应该自己执行额外的编码 - 让 XML API 完成它们的工作。

于 2009-12-10T11:31:39.243 回答
0

我之前也遇到过一些使用 htmlEncode() 的字符的问题。这是编写 XML 的不同方法的一个很好的示例:Differential Ways to Escape an XML String in C#。查看#3 (System.Security.SecurityElement.Escape()) 和#4 (System.Xml.XmlTextWriter),这些是我通常使用的方法。

于 2009-12-10T14:25:18.793 回答