ASMX Web Service używa niewłaściwego kodowania na żądanie przychodzące
Moja usługa .NET ASMX akceptuje żądania od klienta, nad którym nie mam bezpośredniej kontroli. Wysyła prośbę, która wygląda tak:
<code>POST /Service.asmx HTTP/1.1 Connection: Keep-Alive Pragma: no-cache Content-Length: 1382 Content-Type: text/xml Accept: text/xml Host: localhost User-Agent: Borland SOAP 1.1 SOAPAction: "http://domain.com/InsertRecords" <?xml version="1.0"?> <SOAP-ENV:Envelope... <v>ÄLMÅ BÄCK</v></SOAP-ENV:Envelope> </code>
W moim WebMethod ciąg ĘLMÅ BĘCK zostaje zmieniony na ?? LM ?? B ?? CK - typowy bałagan kodowania.
W moich testach odkryłem, że jeśli po prostu poprawię nagłówek typu zawartości, wszystko jest w porządku:
<code>Content-Type: text/xml; charset=utf-8 </code>
Dlaczego .NET wybiera kodowanie inne niż utf-8, gdy jest nieokreślone, i czy jest jakiś sposób, aby zmusić ten ASMX do używania kodowania UTF-8?