非 unicode XML 表示
题
我有 xml,其中一些元素值是 unicode 字符。是否可以用 ANSI 编码来表示?
例如。
<?xml version="1.0" encoding="utf-8"?>
<xml>
<value>受</value>
</xml>
到
<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>殘</value>
</xml>
我反序列化 XML,然后尝试使用指定默认编码(默认为 Windows-1252)的 XmlTextWriter 对其进行序列化。所有 unicode 字符最终都变成问号。我正在使用 VS 2008,C# 3.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>受</value></xml>
我一定是在其他地方做错了什么。谢谢您的帮助。
其他提示
如果我理解这个问题,那么是的。你只需要一个 ;
之后 27544
:
<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>殘</value>
</xml>
或者您想知道如何以编程方式生成此 XML?如果是,您使用什么语言/环境?
不隶属于 StackOverflow