.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 ヘッダーを微調整すれば、すべてうまくいくことがわかりました。
Content-Type: text/xml; charset=utf-8
.NET が指定されていないときに utf-8 以外のエンコーディングを選択するのはなぜですか? また、この ASMX に UTF-8 エンコーディングを使用するように強制する方法はありますか?