[C#] XMLWriter Encoding Issue / XMLWriter 控制文字編碼
一般狀況下,如果不是很在意使用 XMLWriter 後輸出的文字編碼是哪一種的話,可以很簡單地用下面的方式完成 StringBuilder sb = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sb); writer.WriteStartDocument(); //補上 xml 內容, 用 writer.WriteStartElement() 等完成 writer.WriteEndDocument(); writer.Flush(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(sb.ToString()); 但是可以發現到這樣子所輸出的 XML 文件是變成 UTF-16 encoding。雖然有 XmlWriterSettings 這東西可以去設定 XMLWriter 的編碼,不過看起來好像是有些問題,輸出的 XML 結果依舊是 UTF-16。 解決的方法是用 MemoryStream 與 XMLTextWriter。 MemoryStream stream = new MemoryStream(); XmlWriter writer = new XmlTextWriter(stream, Encoding.UTF8); writer.WriteStartDocument(); […]