asp.net Cookies 轉碼的問題 中文丟失

來源:互聯網
上載者:User
    因為asp.net使用UTF-8的文字編碼來顯示GB2312的中文,所以有的時候會出現亂碼,尤其在cookies的時候,更甚至是我們在web.config中這樣設定之後<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>,會導致我們的中文cookie變成亂碼,從而導致cookies無效,因此要將cookies轉化成UTF-8的格式:代碼如下:    /**//// <summary>
    /// 設定 Cookie
    /// </summary>
    /// <param name="lxfs"></param>
    /// <param name="expiresDays"></param>
    public static void SetCookie(string key, string value, int expiresDays)
    {
        DateTime expires = DateTime.Now.AddDays(expiresDays);
        HttpCookie MyCookie = new HttpCookie(key);
        MyCookie.Domain = ".yourdomain.com";
        MyCookie.Value = HttpUtility.UrlEncode(value);
        MyCookie.Expires = expires;
        HttpContext.Current.Response.Cookies.Add(MyCookie);
    }

讀取cookie的時候使用這個函數:

 /**//// <summary>
    /// 對cookie進行UTF編碼
    /// author:jake
    /// bt:080414
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static string GetCookid(string str)
    {
        Encoding stre = Encoding.GetEncoding("UTF-8");
        return HttpUtility.UrlDecode(str,stre);
    }

如:GetCookid(HttpContext.Current.Request.Cookies["sswoo_user"].Value)

如此以來即可解決中文字元cookie丟失的問題了!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.