• 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丢失的问题了!
  • 相关阅读:
    vue项目webpack配置terser-webpack-plugin 去掉项目中多余的debugger
    difference between count(1) and count(*)
    为什么PostgreSQL WAL归档很慢
    mysql_reset_connection()
    Oracle使用audit跟踪登录失败的连接信息
    .NET Standard 版本
    ASP.NET Web API版本
    我是如何用go-zero 实现一个中台系统的
    JAVA中文件写入的6种方法
    MySql 常用语句
  • 原文地址:https://www.cnblogs.com/chy8219/p/1277722.html
Copyright © 2020-2023  润新知