Web服务和编码

时间:2012-01-08 13:39:05

标签: c# web-services encoding

我按如下方式连接到网络服务:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(
    "http://mywebserviceaddress.com/attributes=someatt");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

using (StreamReader stIn = new StreamReader(
       req.GetResponse().GetResponseStream(),Encoding.UTF8))
{
      strResponse = stIn.ReadToEnd();
      return strResponse;
}

但是我得到了(可能)编码错误的响应,因此,在我的页面上,我遇到了以下问题:

encoding failure

我做错了什么或是第三方网络服务问题?如果没有这个愚蠢的问题,我怎么能得到响应呢? 这是调试器的截图:

enter image description here

1 个答案:

答案 0 :(得分:1)

页面可能不是 UTF8 。看起来特殊字符使用ASCII字符的上半部分,因此它是某种旧字符集。将其读作UTF8会导致错误,因为读者不期望单字节特殊字符。

GetResponse()的结果存储到变量中并输出 ContentType CharacterSet的内容。如果服务器正常运行,它将在此属性中显示已使用的字符集。然后,您可以在StreamReader中使用正确的字符集。