使用这个函数 就在用 HttpWebRequest post数据的时候解决了 中文乱码和空格的问题 在工作中碰到的 ^o^ private static string HttpPost() { string postData="username=中文&userid=838 jdkkd";//在发送的内容里包括中文和空格 string Web=@"http://www.myweb.com/myresponse.asp";//地址 postData=postData.Replace(" ","%20");//替换空格 try { //获取URL并进行发送字串 HttpWebRequest myHttpWebRequest =(HttpWebRequest)WebRequest.Create(Web); Stream myStream=new MemoryStream ();//定义这个Stream是只是为了得到发送字串 经过编码之后得到的byte的长度。 StreamWriter myStreamWriter=new StreamWriter(myStream,Encoding.Default);//用默认编码 得到Stream myStreamWriter.Write(postData); myStreamWriter.Flush(); long len=myStream.Length;//目的完成 myStreamWriter.Close(); myHttpWebRequest.ContentType="application/x-www-form-urlencoded"; myHttpWebRequest.ContentLength=len;//如果字符串中存在中文 使用postData.Length得到长度和编码之//后的长度是不一样的:( myHttpWebRequest.Method="POST"; Stream newStream=myHttpWebRequest.GetRequestStream(); myStreamWriter=new StreamWriter(newStream,Encoding.Default);//编码使用Encoding.Default 换来换去编码方法 还是用它得到的中文不会出现乱码,特别是把request("")得到的值写入sql数据库的时候 真是奇怪^O^ myStreamWriter.Write(postData); myStreamWriter.Close(); //获取本次的回馈,先创建接收回馈的类HTTPWEBRESPONSE HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); //创建接收回馈的字节流类 Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流 做爬虫的基础??? Encoding encode = System.Text.Encoding.Default; StreamReader readStream = new StreamReader( receiveStream, encode ); readStream.Close(); return ""; } catch(Exception e) { return ""; } 转载于:https://www.cnblogs.com/dotLive/archive/2006/04/27/386971.html