我正在尝试使用JSON数据发送一个帖子作为UTF8,从我可以看到我正确转换为UTF8但我仍然将数据作为unicode代码点进行了间接编辑:
param = "method=setCategories&s=101";
param += "method=setCategories&s=101;
var name = HttpUtility.UrlEncode("geschirrspüler");
param += "&categories[02][dummies]=name;
所以此时的帖子请求如下:
method=setCategories&s=101&method=setCategories&s=101&categories[02][dummies]=geschirrsp%c3%bcler
然后我进一步编码为UTF8字节数组并发送数据:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://xxx.de/xxx.php");
json = <JSONobject>(param)
req.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(json);
req.ContentLength = byteArray.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.ServicePoint.Expect100Continue = false;
Stream requestStream = req.GetRequestStream();
requestStream.Write(byteArray, 0, byteArray.Length);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
json_data = reader.ReadToEnd();
所以这就是问题所在,请求中的返回数据突出显示geschirrspüler这个词被asprited as geschirrsp \ u00fcler(unicode)。
在回到拥有该网络服务的人并指责他错误地将其错误地放在他身边之前,我想确保我确实做了所有必要的事情来为ü角色发送正确的UTF8编码。
提前致谢。