非Unicode XML表示
时间:2020-03-05 18:58:34 来源:igfitidea点击:
我有一些元素值是Unicode字符的xml。是否可以用ANSI编码表示呢?
例如。
<?xml version="1.0" encoding="utf-8"?> <xml> <value>受</value> </xml>
到
<?xml version="1.0" encoding="Windows-1252"?> <xml> <value>殘</value> </xml>
我对XML进行反序列化,然后尝试使用XmlTextWriter指定默认编码(默认值为Windows-1252)来对其进行序列化。所有的unicode字符都以问号结尾。我正在使用VS 2008,C3.5
解决方案
回答
如果我理解这个问题,那就可以。我们只需在27544
之后加上;
:
<?xml version="1.0" encoding="Windows-1252"?> <xml> <value>殘</value> </xml>
还是我们想知道如何以编程方式生成此XML?如果是这样,我们正在使用哪种语言/环境?
回答
好的,我用以下代码对其进行了测试:
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>受</value></xml>
我肯定在其他地方做错了。谢谢帮助。