我的.NET ASMX web服務正在接受來自客戶端的請求,我沒有直接控制權。它發送看起來像這樣的請求: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,串ALMA背後被被改寫的,以?? ?? LM B ?? CK - 典型的編碼混亂。
在我的測試,我發現,如果我只是調整了Content-Type頭,一切都很好:
Content-Type: text/xml; charset=utf-8
爲什麼.NET選擇比其他的編碼UTF-8時,它的不確定,以及有什麼辦法可以強制這個ASMX使用UTF-8編碼嗎?