看我在这个帖子中的回答:
Windows Form下,如何抓取网页中的中文信息?
http://expert.csdn.net/Expert/topic/2103/2103730.xml?temp=.1583216

解决方案 »

  1.   

    TheAres(班门斧)的代码对于访问网页中的中文信息是可以的,问题是我是要把中文的登录信息传到服务器端http://me/login.asp,并存入服务器端的数据库中。
      

  2.   

    encoding the data firstusing System.Text;Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
    NameValueCollection nvc=new NameValueCollection();
    nvc.Add("USERID",System.Web.HttpUtility.UrlEncode(username, enc));
    nvc.Add("SEX",System.Web.HttpUtility.UrlEncode(sex, enc));
      

  3.   

    我刚刚试过saucer(思归, MS .NET MVP)的方法,存入服务器端的数据库中的中文“三星级”变成了%b2%cb%c4%f1,是要修改System.Text.Encoding.GetEncoding("GB2312")的编码方式呢还是要修改服务器端login.asp接收代码?????
      

  4.   

    服务器端login.asp接收代码改为sUserId = Server.URLEncode(trim(Request.Form("USERID")))也不行,存入服务器端的数据库中的中文“三星级”变成了%25b2%25cb%25c4%25f1,更乱。
      

  5.   

    把saucer(思归, MS .NET MVP)给的代码System.Text.Encoding.GetEncoding("GB2312")中的编码方式GB2312改成Default、UTF-7、UTF-8、Unicode都不行,也是一堆乱码。
      

  6.   

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

  7.   

    WebClient.UploadData是以byte[]的形式发出数据的,在服务器的ASP方无法接收。是否还有其他方法???
      

  8.   

    try the following:
              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();