程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> cookies的丟失和中文亂碼

cookies的丟失和中文亂碼

編輯:.NET實例教程


我在文件系統下開發出來的程序,配置到IIS下,cookIEs出來了些問題。

1,cookIEs的丟失
我在前幾天的隨筆《十分棘手的問題,使用vs2005在文件系統機制下開發出來的web程序,配置到iis就不能正常運行?》中記錄了我解決丟失存儲超級管理員權限的cookIEs的問題,雖然問題最後解決了,但我沒有搞明白原因。隨筆最後我給出了一個在文件系統下正常,在IIS下不正常的牽強理由:文件系統在每次調試時提供了一個微型服務器,每次都是重新分配內存。而在iis下第一次運行是分配內存,只要程序不做改動,不用重新編譯,就不再重新分配內存了。今天又看到《在ASP.NET中使用Session常見問題集錦 》這裡提到:可能和機器的環境有關系,比如:防火牆或者殺毒軟件等,嘗試關閉防火牆(丟失Session的原因應該跟丟失cookIEs的原因一樣)。覺得他講的也有道理,在文件系統下運行應該不通過防火牆,在IIS下運行就要通過防火牆了。看來這個問題不止我一人遇到過。我在以前使用ASP.Net1.1的時候到沒遇到過丟失cookIEs或session的情況。

2,cookIEs的中文亂碼
我昨天晚上突然又發現,IIS下cookIEs裡的中文又出現問題了,顯示亂碼。
費了好一段時間,才解決:
//寫入cookIEs時
string t =HttpUtility.UrlEncode(要寫入到cookIEs的中文值);
HttpCookie c = new HttpCookIE("user_realname", t);
Response.CookIEs.Add(c);
//讀取cookIEs時
t=獲取的中文cookIEs值;
t = HttpUtility.UrlDecode(teacher_name);
這樣就解決了。

提醒正在使用vs2005文件系統開發項目的朋友注意一下。

造成文件系統與IIS運行有差別的原因應該跟他們的運行機制有關,希望找一些介紹他們運行機制的資料來看!

http://enuosky.cnblogs.com/archive/2006/06/14/425762.Html

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