将HttpContext中的特殊字符转换为字符串

时间:2016-07-01 09:39:34

标签: c# asp.net

我在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);

1 个答案:

答案 0 :(得分:1)

您需要在您的网络服务中指定发布数据是UTF-8编码,否则您将无法将其解码为UTF-8。将charset=utf-8添加到content-type标题的末尾应该可以解决问题。

e.g。

'content-type': 'text/xml; charset=utf-8'

请注意,JSON和表单编码的POST数据的规范需要UTF-8。