XmlWriter编码问题

Joh*_*ohn 6 .net xml encoding xmlwriter

我有以下代码:

    MemoryStream ms = new MemoryStream();
    XmlWriter w = XmlWriter.Create(ms);

    w.WriteStartDocument(true);
    w.WriteStartElement("data");

    w.WriteElementString("child", "myvalue");

    w.WriteEndElement();//data
    w.Close();
    ms.Close();

    string test = UTF8Encoding.UTF8.GetString(ms.ToArray());
Run Code Online (Sandbox Code Playgroud)

XML生成正确; 但是,我的问题是字符串'test'的第一个字符是ï(char#239),使得它对某些xml解析器无效:这是来自哪里?我究竟做错了什么?

我知道我可以通过在第一个角色之后开始解决问题,但我宁愿知道它为什么存在而不仅仅是修补问题.

谢谢!

Joh*_*ohn 13

在这里找到一个解决方案:http: //www.timvw.be/generating-utf-8-with-systemxmlxmlwriter/

我在顶部错过了这个:

XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Encoding = new UTF8Encoding(false);
MemoryStream ms = new MemoryStream();
XmlWriter w = XmlWriter.Create(ms, xmlWriterSettings);
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助!