Hopes

          Start Here..

           

          ASP.NET中的URL編碼解碼

          ASP.NET中的URL編碼解碼

          今天項目需要向asp的客戶url Post數據,可是url中文就是不行. 搞了一個下午是asp 和asp.net 的url編碼不一樣的事:

          先看下面兩個Url,他們傳遞的參數一樣么?
          aaa.aspx?tag=.net%bc%bc%ca%f5
          aaa.aspx?tag=.net%e6%8a%80%e6%9c%af

          看起來好像是不一樣,其實他們都是對".net技術"進行了UrlEncode,不過一個是GB2312的編碼,一個是Utf-8的編碼。
          如下代碼就可以獲得上面的編碼后效果:

          string tmp1 = System.Web.HttpUtility.UrlEncode(".net技術", System.Text.Encoding.GetEncoding("GB2312"));
          string tmp2 = System.Web.HttpUtility.UrlEncode(".net技術", System.Text.Encoding.UTF8);

          我們實際的Web頁面,可能會被其他程序調用。
          比如:簡體中文操作系統上的一個ASP頁面,需要向一個ASP.net頁面傳遞一個帶中文的參數。
          默認情況下,簡體中文操作系統上, ASP 的 Server.UrlEncode 方法會把中文以GB2312的編碼進行編碼,
          但是默認情況下,ASP.net的頁面是采用的UTF-8編碼。
          這種情況下,你在用 Request.QueryString["Tag"] 接受值的時候會接受不到中文信息,單步調試看到的是亂碼。
          這時候雖然用Request.QueryString["Tag"] 接受的是亂碼,但這時候的Url并不是亂碼。

          解決方法就是自己分析Url中的參數,然后對參數的值按照 GB2312的編碼反解密,而不是用.net 默認的Utf-8的編碼反解密。

          還有:.net 中有Server.UrlEncode()System.Web.HttpUtility.UrlEncode() 都可以編碼.

          區別在于:HttpUtility.UrlEncode()默認是以UTF8對URL進行編碼,而Server.UrlEncode()則以默認的編碼(頁面編碼一般為utf-8)對URL進行編碼。

          c#asp.net url 傳遞中文參數要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode !!!

          默認aspx是以utf-8為編碼的,在我這個程序中必須用gb2312為默認編碼
          (<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>)

          posted on 2012-08-18 22:13 ** 閱讀(9105) 評論(2)  編輯  收藏

          評論

          # re: ASP.NET中的URL編碼解碼 2014-08-05 16:50 解碼

          解碼  回復  更多評論   

          # re: ASP.NET中的URL編碼解碼 2014-11-27 07:46 zhouq123

          lao shi shu qian wo yao yang qian  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 古田县| 濉溪县| 谢通门县| 安徽省| 宿州市| 宜良县| 峨眉山市| 克山县| 福建省| 道孚县| 灵丘县| 无锡市| 曲阜市| 双牌县| 巴青县| 陇南市| 佛教| 孟村| 西青区| 三原县| 紫金县| 蒙阴县| 武汉市| 泗阳县| 泽州县| 中江县| 永丰县| 体育| 周宁县| 山丹县| 永春县| 比如县| 盖州市| 施甸县| 双鸭山市| 松滋市| 渭源县| 阿荣旗| 长寿区| 隆尧县| 浙江省|