我在webservice中有以下代码来读取帖子数据。这里的问题是每当请求包含特殊字符时,让我们说“amé”,字符在转换为字符串时被替换为am 。
byte[] postData= HttpContext.Request.BinaryRead(HttpContext.Request.ContentLength);
string strReq = Encoding.UTF8.GetString(postData);
我使用以下代码调用WebService:
WebClient webClient = new WebClient();
webClient.Headers["Content-type"] = "text/xml; charset=utf-8";
webClient.Headers[HttpRequestHeader.Authorization] = credentials;
string output = webClient.UploadString(url, "POST", input);
答案 0 :(得分:1)
您需要在您的网络服务中指定发布数据是UTF-8编码,否则您将无法将其解码为UTF-8。将charset=utf-8
添加到content-type
标题的末尾应该可以解决问题。
e.g。
'content-type': 'text/xml; charset=utf-8'
请注意,JSON和表单编码的POST数据的规范需要UTF-8。