非unicode XML表示

时间:2008-09-17 11:01:25

标签: xml string unicode character

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

E.g。

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

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

我反序列化XML,然后尝试使用指定默认编码的XmlTextWriter序列化它(默认为Windows-1252)。所有unicode字符最终都是问号。我正在使用VS 2008,C#3.5

2 个答案:

答案 0 :(得分:5)

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

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受</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>

我必须在其他地方做错事。谢谢你的帮助。

答案 1 :(得分:4)

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

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

或者您是否想知道如何以编程方式生成此XML?如果是这样,你在做什么语言/环境?