我用http post方法发送参数给对方,如果只是英文,结果正常;如果参数内容为中英文混合时,对方得到的结果会有乱码;
不知道都有哪些原因可能导致这种情况,该怎么解决?我的post过程如下:其中post参数值进行base64加密,对方收到后再用base64解密,解密的结果如我上面所说,不知道哪个环节可能有问题,我用的是c#,对方用的的java.参数串类似这样子:
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
//Encode
sCompany = System.Convert.ToBase64String(enc.GetBytes(COMPANY));
postData += "company=" + sCompany;
sOperation = System.Convert.ToBase64String(enc.GetBytes(OPERATION));
postData += "&operation=" + sOperation;

protected string HttpPost(string url,string postData)
{

System.Text.Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
byte[]  data = enc.GetBytes(postData); // Prepare web request...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);

myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream(); // Send the data.
newStream.Write(data,0,data.Length);
newStream.Close(); HttpWebResponse res = (HttpWebResponse) myRequest.GetResponse();
 
StreamReader sr = new StreamReader(res.GetResponseStream(),enc); string sline = sr.ReadLine();

//string sHtml = sr.ReadToEnd(); sr.Close(); res.Close(); return sline;
}