Hopes

          Start Here..

           

          ASP.NET中的URL編碼解碼

          ASP.NET中的URL編碼解碼

          今天項(xiàng)目需要向asp的客戶url Post數(shù)據(jù),可是url中文就是不行. 搞了一個(gè)下午是asp 和asp.net 的url編碼不一樣的事:

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

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

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

          我們實(shí)際的Web頁面,可能會(huì)被其他程序調(diào)用。
          比如:簡體中文操作系統(tǒng)上的一個(gè)ASP頁面,需要向一個(gè)ASP.net頁面?zhèn)鬟f一個(gè)帶中文的參數(shù)。
          默認(rèn)情況下,簡體中文操作系統(tǒng)上, ASP 的 Server.UrlEncode 方法會(huì)把中文以GB2312的編碼進(jìn)行編碼,
          但是默認(rèn)情況下,ASP.net的頁面是采用的UTF-8編碼。
          這種情況下,你在用 Request.QueryString["Tag"] 接受值的時(shí)候會(huì)接受不到中文信息,單步調(diào)試看到的是亂碼。
          這時(shí)候雖然用Request.QueryString["Tag"] 接受的是亂碼,但這時(shí)候的Url并不是亂碼。

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

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

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

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

          默認(rèn)aspx是以u(píng)tf-8為編碼的,在我這個(gè)程序中必須用gb2312為默認(rèn)編碼
          (<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>)

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

          評(píng)論

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

          解碼  回復(fù)  更多評(píng)論   

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

          lao shi shu qian wo yao yang qian  回復(fù)  更多評(píng)論   


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學(xué)習(xí)

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 兴义市| 黄冈市| 周至县| 建瓯市| 安化县| 罗山县| 闻喜县| 双峰县| 红桥区| 漯河市| 兴山县| 天津市| 安平县| 桐乡市| 淄博市| 奉化市| 修水县| 泽州县| 开化县| 乾安县| 桃园县| 上杭县| 宁蒗| 长治县| 广安市| 平阴县| 岳西县| 德阳市| 满洲里市| 吴旗县| 阿荣旗| 福鼎市| 县级市| 宁海县| 衡阳县| 奇台县| 微博| 长乐市| 克山县| 阳新县| 灵璧县|