把saucer(思归, MS .NET MVP)给的代码System.Text.Encoding.GetEncoding("GB2312")中的编码方式GB2312改成Default、UTF-7、UTF-8、Unicode都不行,也是一堆乱码。
you are using ASP??? then tryEncoding enc = System.Text.Encoding.UTF8orEncoding enc = System.Text.Encoding.Unicodeor instead of using UploadValues (I suspect they do additional encoding), try Encoding enc = System.Text.Encoding.GetEncoding("GB2312"); string s = ""; s += "USERID=" + System.Web.HttpUtility.UrlEncode(username, enc); s += "&SEX=" + System.Web.HttpUtility.UrlEncode(sex, enc);then useWebClient.UploadData("...","...", System.Text.Encoding.ASCII.GetBytes(s));
NameValueCollection nvc=new NameValueCollection();
nvc.Add("USERID",System.Web.HttpUtility.UrlEncode(username, enc));
nvc.Add("SEX",System.Web.HttpUtility.UrlEncode(sex, enc));
Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
string s = "";
s += "USERID=" + System.Web.HttpUtility.UrlEncode(username, enc);
s += "&SEX=" + System.Web.HttpUtility.UrlEncode(sex, enc);then useWebClient.UploadData("...","...", System.Text.Encoding.ASCII.GetBytes(s));
string sUrl = "http://localhost/labs/TestPage.asp";
Encoding enc = System.Text.Encoding.GetEncoding("GB2312"); string sData = "USERID=" + System.Web.HttpUtility.UrlEncode("开心", enc);
sData += "&SEX=" + System.Web.HttpUtility.UrlEncode("男", enc); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.0.3705)";
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] PostData = System.Text.Encoding.ASCII.GetBytes(sData); req.ContentLength = PostData.Length;
Stream tempStream = req.GetRequestStream();
tempStream.Write(PostData,0,PostData.Length);
tempStream.Close(); HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr= new StreamReader(res.GetResponseStream(), enc);
string sHtml = sr.ReadToEnd();
Console.WriteLine(sHtml);
sr.Close();
res.Close();