2

我有 xml,其中一些元素值是 unicode 字符。是否可以用 ANSI 编码来表示?

例如

<?xml version="1.0" encoding="utf-8"?>
<xml>
<value>受&lt;/value>
</xml>

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

我反序列化 XML,然后尝试使用 XmlTextWriter 指定默认编码(默认为 Windows-1252)对其进行序列化。所有的 unicode 字符都以问号结尾。我正在使用 VS 2008,C# 3.5

4

2 回答 2

5

好的,我使用以下代码对其进行了测试:

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受&lt;/value></xml>";

 XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.Default };
 MemoryStream ms = new MemoryStream();
 using (XmlWriter writer = XmlTextWriter.Create(ms, settings))
      XElement.Parse(xml).WriteTo(writer);

 string value = Encoding.Default.GetString(ms.ToArray());

它正确地转义了 unicode 字符,因此:

<?xml version="1.0" encoding="Windows-1252"?><xml><value>&#x53D7;</value></xml>

我一定在其他地方做错了什么。谢谢您的帮助。

于 2008-09-17T12:11:33.420 回答
4

如果我理解这个问题,那么是的。你只需要一个;之后27544

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

或者您想知道如何以编程方式生成此 XML?如果是这样,您在哪种语言/环境中工作?

于 2008-09-17T11:03:25.410 回答