.NET C#中處理Url中文編碼問題


  近些日子在做一個用C#訪問webservise的程序,由於需要傳遞中文參數去請求網站,所以碰到了中文編碼問題。我們知道像百度這種搜索引擎中,當用戶輸入中文關鍵字后,它會把中文轉碼,以確保在Url中不會出現編碼問題。比如在搜索框中輸入“博客園”三個字,會看到URl如下所示:http://www.baidu.com/s?wd=博客園&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=99570746_hao_pg,但是當你把它復制下來后,會發現是這樣的:http://www.baidu.com/s?wd=%E5%8D%9A%E5%AE%A2%E5%9B%AD&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=99570746_hao_pg,其實他們代表的是用一樣的意思,只是編碼不同而已。我們在用Url傳遞中文參數是也要做相應的轉碼處理。

  回到正題,.NET C#中如何對中文轉碼呢?以下是我解決問題的方法:

   System.Web.HttpUtility.UrlEncode(string prams):

    A.按照UTF-8進行編碼 :

      該方法括號里面就收一個字符串,比如你要轉碼的中文參數,返回string;

      示例:string Url = "cityname = " + System.Web.HttpUtility.UrlEncode("成都")+"&key=1e2r3r4t5y";

    B.還有一種是按照GB2312進行編碼 :
      string Url = System.Web.HttpUtility.UrlEncode("成都",System.Text.Encoding.GetEncoding("GB2312"));

    具體使用哪種編碼可根據服務器接受的編碼設置,一般用第一種就行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM