ASP.NET: Va Sauver un XmlDocument pour la Réponse.OutputStream l'honneur de l'encodage?

je veux envoyer le xml d'un XmlDocument objet pour le client HTTP, mais je crains que le suggéré soltuion pourrait ne pas honorer le codage de la Response a été configuré pour utiliser:

public void ProcessRequest(HttpContext context)
{
   XmlDocument doc = GetXmlToShow(context);

   context.Response.ContentType = "text/xml";
   context.Response.ContentEncoding = System.Text.Encoding.UTF8;
   context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
   context.Response.Cache.SetAllowResponseInBrowserHistory(true);

   doc.Save(context.Response.OutputStream);

}

Ce que si j'ai changé l'encodage de quelque chose d'autre, Unicode par exemple:

public void ProcessRequest(HttpContext context)
{
   XmlDocument doc = GetXmlToShow(context);

   context.Response.ContentType = "text/xml";
   context.Response.ContentEncoding = System.Text.Encoding.Unicode;
   context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
   context.Response.Cache.SetAllowResponseInBrowserHistory(true);

   doc.Save(context.Response.OutputStream);
}

Sera le Response.OutputStream traduire les données binaires qui a été écrit pour elle à la volée, et de le rendre Unicode?

Ou est le Response.ContentEncoding juste instructif?

Si le ContentEncoding est juste informatif, le contenu de l'encodage du texte de suivi des chaînes de revenir dans?

context.Response.ContentEncoding = System.Text.Encoding.Unicode;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.UTF16;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.ASCII;
context.Response.Write("Hello World");

context.Response.ContentEncoding = System.Text.Encoding.BigEndianUnicode;
context.Response.Write("Hello World");

OriginalL'auteur Ian Boyd | 2009-02-13