Jak wymusić dodanie BOM do HttpResponse?

0

WebService zwraca xmla, który jest wyświetlany na stronie aspx w taki sposób:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetNoStore();

    new Obiekt.DajXml().Save(Response.Output);
}

Xml domyślnie jest kodowany w utf8, ale niestety, nie jest dodawany do niego znacznik BOM. A aplikacja kliencka oczekuje znacznika BOM, jeśli xml jest kodowany w utf8. Jak wymusić dodanie BOM?

0

Przepisać aplikację kliencką, bo to jest błędne.

A na serio - to zależy jak jest robiony Obiekt.DajXml() - ale ogólnie to taki System.Text.UTF8Encoding ma możliwość wywołania konstruktora, który zwróci także BOM. Czyli chyba można przekonwertować (ewentualnie, w zależności jak jest tworzony XML, odpowiednio wybrać kodowanie, używając drugiego konstruktora klasy UTF8Encoding.

System.Text.Encoding.Convert(Encoding.UTF8Encoding, new Encoding.UTF8Encoding(true), tutajtablicabajtówbędącaxmlem);
0

jeśli dobrze pamiętam, wystarczy Response.ContentEncoding = Encoding.UTF8 (UTF7/BigEndianUnicode/UTF32).
jutro w pracy spojrzę do kodu i potwierdzę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1