XmlWriter 生成XML,编码问题
XmlWriter.Create 有多个重载。包括 Stream 和 StringBuilder ,如果使用 StringBuilder ,由于StringBuilder 的问题,设置 Encoding 没有效果,声明 始终是 encoding="utf-16" 。
解决方法:
1,将 encoding="utf-16" 使用字符串替换(replace )为 encoding="utf-8" 。(不建议)
2,重载改为 Stream 。然后在读取 stream 流,拿出 xml 。
eg:
using (MemoryStream ms = new MemoryStream()) { WriteXml(ms); string result = Encoding.UTF8.GetString(ms.ToArray()); } private void WriteXml(Stream stream) { using (XmlWriter xw = XmlWriter.Create(stream)) { xw.WriteStartDocument(); // TODO. xw.WriteEndDocument(); } }
Categories:
.net
已禁用评论。