本站最新发布 C#从入门到精通
试听地址https://www.xin3721.com/eschool/CSharpxin3721/
今天工作上遇到一个问题,需要把一个对象集合List存入一个Cookie,按照原来都封装方法存入都ok,但是到取值都时候中文会变成乱码。
首先,我们可以确认Json和Cookie都有可能乱码,我们可以在转换Json和写入写出Cookie的时候都加入调试代码,这样可以看到转换Json和Cookie的值。
先解决Json转换问题,乱码的原因无非在于编码问题(一般都是吧)所以在转换Json格式的时候呢我们需要对字符进行编码:
Encoding encode = System.Text.Encoding.GetEncoding("Unicode");
对Json编码后中文就可以正常显示了~
Cookie都名称或子cookie的名称或子cookie的名称不能为中文,否则无法获得cookie,所以就不能使用中文,这算是个解决都办法吧,但是如果需要使用的数据中有中文呢,那就只能进行编码了,如下:
存Cookie的时候进行编码:
cookie.Value = HttpUtility.UrlEncode("Name");
取cookie时候,进行解码:
cookieValue = HttpUtility.UrlDecode(cookie.Value);
最后,编码和解码要保持一致:
System.Web.HttpUtility.UrlDecode
System.Web.HttpUtility.UrlEncode
System.W