- ASP.NET 与 XML-XmlTextReader
- ASP.NET 与 XML-XmlTextWriter
- ASP.NET 与 XML-生成的 XML 的编码
- ASP.NET 与 XML-XmlDataDocument 演示
- ASP.NET 与 XML-页面上直接输出
前面用 XmlTextWriter 生成的编码是 UTF-16,而我们最常用的是 UTF-8,怎么办呢?以下代码表面上看起来不错:
StringBuilder media = new StringBuilder(); XmlWriterSettings settings = new XmlWriterSettings(); settings.Encoding = Encoding.UTF8; settings.Indent = true; using (XmlWriter writer = XmlWriter.Create(media, settings))
但非常遗憾,它不起作用,这是因为 .NET 字符串总是 UTF-16 的,所以 StringBuilder 也是 UTF-16。
我个人认为最简单的方法是:
- 不使用:writer.WriteStartDocument();
- 而使用:writer.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\""); 此时 WriteEndDocument(); 不可用。
而最科学的方法应该是使用:new XmlTextWriter(System.IO.Stream, Encoding) 这个构造函数,但稍麻烦一些。

ASP.NET 与 XML-生成的 XML 的编码