我的.NET ASMX Web服务正在接受来自我无法直接控制的客户端的请求.它正在发送一个如下所示的请求:
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>
在我的WebMethod中,字符串ÄLMÅBÄCK被提到了? B ?? CK – 典型的编码混乱.
在我的测试中,我发现如果我只是调整内容类型的标题,一切都很好:
Content-Type: text/xml; charset=utf-8
为什么.NET在未指定的情况下选择utf-8以外的编码,有什么方法可以强迫这个ASMX使用UTF-8编码?