zoukankan      html  css  js  c++  java
  • asp.net Cookies 转码的问题 中文丢失

     因为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丢失的问题了!
  • 相关阅读:
    PowerShell里的数组
    题解 cf gym 103261 D FFT Algorithm
    欧拉筛求积性函数的一般形式
    题解 LOJ 6053
    题解 SP34112 UDIVSUM
    题解 luogu P5162 WD与积木
    Java 关闭流同步输入输出
    题解 luogu P6620 [省选联考 2020 A 卷] 组合数问题
    hdu 6588 题解
    题解 cf gym 102979 E Expected Distance
  • 原文地址:https://www.cnblogs.com/chy8219/p/1277722.html
Copyright © 2011-2022 走看看