程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 中文Cookie亂碼(windows server 2003、IIS6.0)

中文Cookie亂碼(windows server 2003、IIS6.0)

編輯:C#入門知識

【BUG產生背景】

由於網站業務有所改動,需要開放中文用戶名注冊。因此,取消了用戶不能為中文的限制,結果用戶能夠正常注冊,也能夠正常登錄。但是出現了中文用戶名亂碼的BUG!

【使用技術平台】

windows server 2003、IIS6.0、ASP.NET MVC

【解決方案】

其實有點項目經驗的朋友,就知道是編碼問題。但是,問題是為什麼是部分亂碼,並不是所有中文亂碼,這讓很多朋友疑惑。其實仔細的朋友會發現,一般這些用戶信息是放在Session或者Cookie中,所以找到問題的根源,就是Session和Cookie編碼問題。具體解決方案:

   1:  //寫入cookies時
   2:   HttpCookie cookie = new HttpCookie("LOGIN");
   3:   System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312");
   4:   cookie["userid"] = HttpUtility.UrlEncode(userid, enc);
   5:   cookie["userpassword"] = HttpUtility.UrlEncode(a_userpassword,enc);
   6:  //讀取cookies時
   7:   System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312");
   8:   userid = HttpUtility.UrlDecode(cookie["userid"], enc);
   9:   userpassword = HttpUtility.UrlDecode(cookie["userpassword"].ToString(), enc);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved