请问一下,Encoding.UTF8.GetBytes和UTF8Encoding.Default.GetBytes有什么区别?其实我正在尝试将XML字符串转换为流对象,但现在的情况是无论我使用哪一行代码:
MemoryStream stream = new MemoryStream(UTF8Encoding.Default.GetBytes(xml));
它给我一个错误“System.Xml.XmlException:在给定的编码中存在无效字符”
但是当我使用这行代码时,它可以正常运行:
**MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(xml));**
尽管两种情况看起来都是UTF8编码,但为什么一个能够工作而另一个不能呢?
XmlDocument
、XDocument
或XmlWriter
方法将XML保存到MemoryStream
中,将为您和数据用户节省大量痛苦,因为这些方法可以避免无效的XML文件。 - Alexei Levenkov