| 正在研究一個程序,輸入一個關鍵字,能夠把這個關鍵字發送到Google,yahoo等搜索引擎,進行搜索,然后打開結果網頁。原理很簡單。比如在Google搜索China,搜索結果頁面的URL就是“http://www.google.com/search?hl=zh-CN& q=China&lr=”。只要替換紅顏色的內容,就可以按照不同的關鍵字搜索。 但是如果關鍵字是中文,就會出現問題。比如在google搜索“中國”,Url是“http://www.google.com /search?hl=zh-CN&newwindow=1&q=%E4%B8%AD%E5%9B%BD&lr=”。漢字“中 國”被按照UTF-8的格式進行編碼。 不僅漢字進行編碼,一些特殊字符也會進行編碼。比如搜索“C#”,URL是“http://www.google.com/search?hl=zh-CN&newwindow=1&q=C%23&lr=”。 一般來說,國外的網站都是按照UTF-8編碼,而“百度”是按照“GB2312”進行編碼的。比如搜索“中國”,URL是“http://www.baidu.com/s?wd=%D6%D0%B9%FA&cl=3” 我們對比一下:C#中國的編碼 編碼 結果 網站 UTF-8 C%23%E4%B8%AD%E5%9B%BD Google GB2312 C%23%D6%D0%B9%FA BaiDu 總結: UTF-8中,一個漢字對應三個字節,GB2312中一個漢字占用兩個字節。 不論何種編碼,字母數字都不編碼,特殊符號編碼后占用一個字節。 //按照UTF-8進行編碼 string tempSearchString1 = System.Web.HttpUtility.UrlEncode("C#中國"); //按照GB2312進行編碼 string tempSearchString2 = System.Web.HttpUtility.UrlEncode("C#中國",System.Text.Encoding.GetEncoding("GB2312")); //-------------------------------------------------------------------------------------------------------------- 【轉】ASP.NET中c#的URL編碼處理 要解決的問題: 將下面的URL作為一個參數傳到其他的頁面 1 http://domain/de.apx?uid=12&page=15 2 url后面的參數中出現漢字等,如: ....aspx?title=起重機 在出現上面的情況的時候,必須經過一個RUL編碼和解碼的過程,否則會出現錯誤. 代碼如下: //傳值 string temp = " <a href='Add.aspx?url=" +Server.UrlEncode(? skin.Page.Request.Url.AbsoluteUri )+ "&title=" +Server.UrlEncode(? skin.Page.Header.Title )+ "'>添加到收藏夾</a>"); //在另外一個文件中取從上面傳的值 if (Request.QueryString["url"] != null) { ???? string url = Server.UrlDecode(Request.QueryString["url"].ToString()); ???? this.txtAddress.Text = url; } if (Request.QueryString["title"] != null) { ???? string title = Server.UrlDecode(Request.QueryString["title"].ToString()); ???? this.txtTitle.Text = title; } //----------------------------------------------- URL編碼對照表 1、string s = System.Web.HttpUtility(byte[] data); 這里的s即為轉換出來的URL編碼,需要注意的是這里的byte數組必須是具有ASCII意義的數組,由string通過System.Text.Encoding.Default.getBytes(str.ToCharArray());是不正確的,不能正確轉義! 2、根據URL編碼規則寫個小程序 ******* string UrlEncode(byte[] byt) {??? ????? string desstr = "";??? ????? for(int i=0; i<byt.Length;i++)??? ????? {??? ?????? desstr += "%";??? ?????? desstr += byt[i].ToString("X2");??? ????? } ????? return desstr; } 以下是URL編碼對照表: backspace %08 tab??????? %09 linefeed %0A creturn??? %0D space????? %20 !????????? %21 "????????? %22 #????????? %23 $????????? %24 %????????? %25 &?????????? %26 '????????? %27 (????????? %28 )????????? %29 *????????? %2A +????????? %2B ,????????? %2C -????????? %2D .????????? %2E /????????? %2F 0????????? %30 1????????? %31 2????????? %32 3????????? %33 4????????? %34 5????????? %35 6????????? %36 7????????? %37 8????????? %38 9????????? %39 :????????? %3A ;????????? %3B <?????????? %3C =????????? %3D >?????????? %3E ?????????? %3F @????????? %40 A????????? %41 B????????? %42 C????????? %43 D????????? %44 E????????? %45 F????????? %46 G????????? %47 H????????? %48 I????????? %49 J????????? %4A K????????? %4B L????????? %4C M????????? %4D N????????? %4E O????????? %4F P????????? %50 Q????????? %51 R????????? %52 S????????? %53 T????????? %54 U????????? %55 V????????? %56 W????????? %57 X????????? %58 Y????????? %59 Z????????? %5A [????????? %5B \????????? %5C ]????????? %5D ^????????? %5E _????????? %5F `????????? %60 a????????? %61 b????????? %62 c????????? %63 d????????? %64 e????????? %65 f????????? %66 g????????? %67 h????????? %68 i????????? %69 j????????? %6A k????????? %6B l????????? %6C m????????? %6D n????????? %6E o????????? %6F p????????? %70 q????????? %71 r????????? %72 s????????? %73 t????????? %74 u????????? %75 v????????? %76 w????????? %77 x????????? %78 y????????? %79 z????????? %7A {????????? %7B |????????? %7C }????????? %7D ~????????? %7E ¢????????? %A2 £????????? %A3 ¥????????? %A5 |????????? %A6 §????????? %A7 ?????????? %AB ?????????? %AC ˉ????????? %AD o????????? %B0 ±????????? %B1 a????????? %B2 ,????????? %B4 μ????????? %B5 ?????????? %BB ?????????? %BC ?????????? %BD ?????????? %BF A`????????? %C0 A′????????? %C1 A^????????? %C2 A~????????? %C3 A¨????????? %C4 A°????????? %C5 ?????????? %C6 C?????????? %C7 E`????????? %C8 E′????????? %C9 E^????????? %CA E¨????????? %CB I`????????? %CC I′????????? %CD I^????????? %CE I¨????????? %CF D????????? %D0 N~????????? %D1 O`????????? %D2 O′????????? %D3 O^????????? %D4 O~????????? %D5 O¨????????? %D6 ?????????? %D8 U`????????? %D9 U′????????? %DA U^????????? %DB U¨????????? %DC Y′????????? %DD T????????? %DE ?????????? %DF a`????????? %E0 a′????????? %E1 a^????????? %E2 a~????????? %E3 a¨????????? %E4 a°????????? %E5 ?????????? %E6 c?????????? %E7 e`????????? %E8 e′????????? %E9 e^????????? %EA e¨????????? %EB i`????????? %EC i′????????? %ED i^????????? %EE i¨????????? %EF e????????? %F0 n~????????? %F1 o`????????? %F2 o′????????? %F3 o^????????? %F4 o~????????? %F5 o¨????????? %F6 ÷??????????? %F7 ????????????? %F8 u`??????????? %F9 u′??????????? %FA u^??????????? %FB u¨????????? %FC y′??????????? %FD t???????????? %FE y¨????????? %FF |