Веб-служба ASMX использует неправильную кодировку при входящем запросе
Мой веб-сервис .NET ASMX принимает запросы от клиента, над которым у меня нет прямого контроля. Он отправляет запрос, который выглядит следующим образом:
<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>
В моем WebMethod строка & # xC4; LM & # xC5; B & # xC4; CK превращается в "LM" B ?? CK - типичная путаница кодировки.
В моем тестировании я обнаружил, что если я просто настрою заголовок типа контента, все будет хорошо:
<code>Content-Type: text/xml; charset=utf-8 </code>
Почему .NET выбирает кодировку, отличную от utf-8, когда она не указана, и есть ли способ заставить этот ASMX использовать кодировку UTF-8?