国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:25:00
字體:
來源:轉載
供稿:網友
背景

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

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

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

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

網頁的編碼,一是接收請求數據(requestEncoding)的編碼,一是發送響應(responseEncoding)的編碼。只要讓a頁面發送響應的編碼,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頁面發送響應的一致,行不行呢。我試過了,不行,代碼見下,如果你知道其中原理,煩請告知,不勝感激!

復制代碼 代碼如下:


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广安市| 吴堡县| 乌兰浩特市| 奉贤区| 康定县| 乾安县| 应用必备| 泰和县| 洛阳市| 乌鲁木齐县| 兴文县| 伊宁市| 新沂市| 民丰县| 乃东县| 称多县| 汕头市| 巴彦县| 陈巴尔虎旗| 翼城县| 呼玛县| 合阳县| 德清县| 西平县| 台江县| 岳池县| 罗甸县| 买车| 邮箱| 仁布县| 南涧| 峨山| 株洲县| 韶关市| 迁安市| 巴南区| 邯郸县| 东丰县| 博兴县| 古丈县| 金阳县|