我的 .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 被转换为 ??LM?? B??CK——典型的编码混乱。
在我的测试中,我发现如果我只是调整内容类型标题,一切都很好:
Content-Type: text/xml; charset=utf-8
为什么 .NET 在未指定时选择 utf-8 以外的编码,有什么办法可以强制此 ASMX 使用 UTF-8 编码?