最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET中Request.Form中文亂碼的解決方法

 更新時間:2011年03月28日 22:26:09   作者:  
一直以為,只有 Request.QueryString 接收url查詢字符串含中文時可能會亂碼(做好編解碼工作,很容易可以避免),碰到的時候,才知道 Request.Form 接收表單的值中含中文也會亂碼,以前真是很傻很天真很無知。
背景

涉及到兩個網(wǎng)站的通信,網(wǎng)站A有一頁面a,用提交表單的方式,傳值到網(wǎng)站B的頁面b。網(wǎng)站A統(tǒng)一用UTF-8編碼,網(wǎng)站B統(tǒng)一用GB2312編碼。

web.config中編碼的設置
網(wǎng)站A:<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
網(wǎng)站B:<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
解決

網(wǎng)上搜索的結(jié)果,無非都是修改 web.config 文件的requestEncoding、responseEncoding之類的,這對我來說,純屬餿主意。加之網(wǎng)絡瘋狂地復制、粘貼、未驗證可行性等行為,一直令我發(fā)指,直接導致搜索結(jié)果千篇一律,找到的都是那幾篇文章,最氣憤的是其中的內(nèi)容還是錯誤的。所以本人一直堅持,遇到的問題,確實驗證了可行,才在博客貼出,以免誤人誤己。(希望沒扯得太遠)

那就自己動動腦吧,稍微梳理下,其實這個過程很簡單,就是一個UTF-8的頁面發(fā)送數(shù)據(jù)到GB2312的頁面,由于編碼不同,出現(xiàn)亂碼很正常,解決方法自然是統(tǒng)一編碼。

網(wǎng)頁的編碼,一是接收請求數(shù)據(jù)(requestEncoding)的編碼,一是發(fā)送響應(responseEncoding)的編碼。只要讓a頁面發(fā)送響應的編碼,b頁面接收請求的編碼一致,即可解決亂碼問題。

代碼只有一句,在a頁面Page_Load方法中加入 Response.ContentEncoding = Encoding.GetEncoding("gb2312"); 即可。
復制代碼 代碼如下:

// 設置a頁面響應編碼為gb2312,保證與b頁面接收請求的編碼一致
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentEncoding = Encoding.GetEncoding("gb2312");
}

可能你會有意見,說,反過來設置b頁面接收請求的編碼與a頁面發(fā)送響應的一致,行不行呢。我試過了,不行,代碼見下,如果你知道其中原理,煩請告知,不勝感激!
復制代碼 代碼如下:

// 設置b頁面接收請求的編碼為utf-8,保證與a頁面響應編碼一致,但行不通,為何??
protected void Page_Load(object sender, EventArgs e)
{
Request.ContentEncoding = Encoding.GetEncoding("utf-8");
}

相關文章

最新評論

威信县| 达尔| 剑河县| 通州市| 巨野县| 博客| 扎鲁特旗| 临江市| 同德县| 什邡市| 奉贤区| 娱乐| 洱源县| 黄骅市| 达孜县| 巴林右旗| 浪卡子县| 铜梁县| 增城市| 嘉祥县| 吴忠市| 肇庆市| 秦安县| 秦皇岛市| 资溪县| 崇州市| 唐河县| 孟津县| 屯昌县| 临夏县| 宜兰市| 扎兰屯市| 黔江区| 遵化市| 遵义县| 东光县| 平凉市| 施秉县| 女性| 西乡县| 台北市|