XmlWriter的编码问题 [英] XmlWriter encoding issues

查看:144
本文介绍了XmlWriter的编码问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下的code:

    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());

XML是正确生成;不过,我的问题是字符串测试的第一个字母为I(字符#239),使之无效的某些XML解析器:哪里是这个未来?究竟是什么我做错误?

The XML is generated correctly; however, my problem is the first character of the string 'test' is ï (char #239), making it invalid to some xml parsers: where is this coming from? What exactly am I doing incorrectly?

我知道我可以用一个字符后刚刚开始解决这个问题,但我宁愿知道为什么它的存在不是简单地修补了这个问题。

I know I can resolve the issue by just starting after the first character, but I'd rather know why it's there than simply patching over the problem.

谢谢!

推荐答案

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

Found one solution here: 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);

感谢大家的帮助!

Thanks for the help everyone!

这篇关于XmlWriter的编码问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆