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丢失的问题了!
  • 相关阅读:
    JS实现添加至购物车功能
    python定制数据类型(继承与授权)两种方式
    模拟数据,控制账号
    绑定知识拓展
    面向对象之多态练习
    面向对象之继承与派生(学生管理系统)
    面向对象之组合(学生管理系统)
    一次小的上机试题
    面向对象之self classmethod staticmethod
    haproxy.conf文件操作(基于函数方式)
  • 原文地址:https://www.cnblogs.com/chy8219/p/1277722.html
Copyright © 2011-2022 走看看