URL里包含中文, HttpWebRequest的时候编码出问题了


       
代码如下,问题就是在:当我那个URL里包含中文(是指那个keywords变量)的时候,这个URL传到linkhelper 网站的时候 keywords就变成乱码了。导致结果查询的错误
另外,这个在地址栏里直接输入中文是可以正常显示结果的(比如http://indexed.linkhelper.cn/searchkeywords.asp?url=www.qq163.com&querywords=音乐)。


       string url = "http://indexed.linkhelper.cn/searchkeywords.asp?url=" + urls + "&querywords=" + HttpServerUtility.UrlTokenEncode(Encoding.Default.GetBytes(keywords));
           
                WebRequest wrq;
                HttpWebResponse wrp;
                wrq = HttpWebRequest.Create(url);
                wrp = (HttpWebResponse)wrq.GetResponse();
                Stream resStream = wrp.GetResponseStream();
                StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default );
                //StreamReader sr = new System.IO.StreamReader(resStream, Encoding.GetEncoding("GB2312"));    
                string tempstr = sr.ReadToEnd();
                return tempstr;
           

10 个解决方案

#1


传URL的时候要编码   在接收的时候再解码   c#有现成的方法

#2


用 keywords =HttpServerUtility.UrlTokenEncode (Encoding.Default .GetBytes(keywords));
编码了,还是不行。看来用URL传,是行不通了的。

#3


Encoding.UTF8试试

#4


都试过了,没用。嘿嘿,转了个弯,用别的方法了

#5


以前用java的时候碰到过这种问题,最好的解决办法是考虑用session传值。或者url里面放的全部是英文符号,传到以后去数据库里面查。编码问题没那么好解决。

#6


用HttpUtility.UrlEncode 

命名空间:System.Web

#7


引用 6 楼 neil198 的回复:
用HttpUtility.UrlEncode

命名空间:System.Web


如上

#8


谢谢大家的支持与帮助,回帖的都给分

#9


不回的呢?

#10


不回的我想给也给不了,呵呵已经结贴了

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2018 ITdaan.com 粤ICP备14056181号