猿问

url参数的问题。

HttpUtility.UrlEncodeUnicode(谷歌) 的结果是 %u8c37%u6b4c

http://ks.pconline.com.cn/bbs.jsp?forumName=%D2%BA%BE%A7%B5%E7%CA%D3%BA%CD%B5%C8%C0%EB%D7%D3&forumValue=0000000071&forumOrgID=0000000071&forumOrgName

=%D2%BA%BE%A7%B5%E7%CA%D3%BA%CD%B5%C8%C0%EB%D7%D3&qx=&q=%u8c37%u6b4c&scope=title

在这个网站里的搜索框里输入谷歌。q=%u8c37%u6b4c

string searchkey =searchnum.Replace("{0",System.Web.HttpUtility.UrlEncodeUnicode(谷歌));

 Request.CookieContainer = new CookieContainer();        

    Response = (HttpWebResponse)Request.GetResponse();     

   Stream stream = Response.GetResponseStream();          

      byte[] streambyte = StreamToBytes(stream);           

     if (Response.StatusCode == HttpStatusCode.OK && Response.ContentLength < 1024 * 1024)          

      {                 

         HTML = Encoding.Default.GetString(streambyte);

    }

如果先在url里编码,然后用程序抓取,网页里搜索的是u8c37%u6b4c,也就是把“谷歌”编码后的值搜索了。

如果把q=谷歌,搜索的是乱码。英文的就是想搜的东西。就是处理中文关键字。

谁能给出个解决方案?网页在什么时候对这些中文参数进行的编码?

请给出具体的方案。谢谢!!

斯蒂芬大帝
浏览 376回答 8
8回答

杨__羊羊

浏览器会对Url编码.

慕容3067478

在传值前进行编码  再进行传递 使用时 解码

慕村9548890

那这种情况下在什么时候进行解码呢?

慕森王

我觉得也是这个原因,就是不知道在哪解码?

心有法竹

传到那个页面 在load里解码

一只萌萌小番薯

 HTML = Encoding.Default.GetString(streambyte); 换成以下代码试试 HTML = Encoding.GetEncoding(Response.CharacterSet).GetString(streambyte)

青春有我

我说的不是这个问题,是url参数编码解码的问题
随时随地看视频慕课网APP
我要回答