Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
ASP.NET 与 XML-生成的 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-XmlTextReader

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

标题:必填
内容:
文章信息