Cookie值中文亂碼問題

Web開發者發表於2012-05-31

cookie裡面不能寫中文,是由於cookie先天的編碼方式造成的。所以需要有一種中間編碼來過渡。 URLEncode是最好的選擇。

我們以asp.net為例,程式碼如下:

設定Cookie時:

HttpCookie cookie = new HttpCookie("name", System.Web.HttpContext.Current.Server.UrlEncode("雨林星空"));
Response.Cookies.Add(cookie);

讀取Cookie時:

if (Request.Cookies["name"] != null)
{
    Response.Write(System.Web.HttpContext.Current.Server.UrlDecode(Request.Cookies["name"].Value));
}

注意:編碼和解碼要一致

System.Web.HttpContext.Current.Server.UrlDecode 和 System.Web.HttpContext.Current.Server.UrlEncode

System.Web.HttpUtility.UrlDecode 和 System.Web.HttpUtility.UrlEncode

相關文章