DataSet.WriteXml(String)生成的Xml文件中包含XML 聲明, 而DataSet.WriteXml(Stream)卻不會寫入Xml聲明即<?xml version="1.0" standalone="yes"?>
詳細情況:
在寫博客園的數據備份程序時,本來想通過ds.WriteXml(Response.OutputStream)直接將Xml數據發送到客戶端,可是這樣在客戶端得到的Xml文件中的所有中文全是亂碼,亂碼的Xml文件與正常的Xml文件區別就是少了一行Xml聲明。然後, 我改了代碼, 手動寫入Xml聲明, 亂碼問題就解決,代碼如下:
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
writer.WriteStartDocument();
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();