asp.net mvc解决cookie储存中文乱码

cookie是一种机制,在程序中,会话跟踪是很重要的事情。cookie机制它可以弥补HTTP协议无状态的不足。Web应用程序使用的是HTTP协议传输数据的,一旦数据传输完毕,客户端与服务端就会断开连接,再次传输数据就需要重新建立新的连接,建立新的连接以为着服务器无法从连接上跟踪会话。cookie可以理解为一个通行证,就像身份证一样,拿着身份证登记,去到哪里都能查到你什么时候做过了什么事情,而cookie是服务器记录该用户状态时,使用response向客户游览器颁发的一个记录证,在客户使用的游览器中访问该网址链接的时候游览器就会把请求的网址和cookie一同传输给服务器,服务器通过检查cookie就能知道你是谁并在该网址干过什么。但是cookie和身份证的不同处是:cookie是某服务器颁发给某客户游览器的,并不是某服务器颁发之后在所有游览器能记录到cookie,身份证则是全国全球范围的。

cookie储存中文是会乱码的,在使用cookie储存中文的时候需要使用特定的程序编码中文。

使用直接把输入的内容赋值给cookie储存
在这里插入图片描述
断点查看储存到cookie的字符串,在储存的过程中是没有问题的这都是能把中文存储进cookie里的,没什么问题的,注意查看[&]符号,这个[&]符号是[和]的意思,两个[&]是分割成三个字符串
在这里插入图片描述
但是使用UrlDecode读取cookie中储存的中文就会乱码,Decode译为译码器,这样子存储在cookie中的中文就会被解码为一些符号等
在这里插入图片描述
断点查看读取到刚刚储存在cookie的字符串,在这里可看到读取cookie储存的中文已经乱码了,在这里还少了一个[&]符号,那读取到的只有两个字符串
在这里插入图片描述
需要回填的账号、姓名、密码,只有账号是回填正确的,而姓名中的中文已经编译为乱码了,因为少了一个[&]符号,只有两个字符串,把密码中的字符拼接到了姓名当中,已经把密码当成明文一样回填到了姓名输入框当中,密码当成明文显示出来,这样子是很危险的。
在这里插入图片描述
cookie储存中文的时候使用特定的程序编码中文,在储存过程中使用HttpUtility.UrlEncode(strUserName,Encoding.GetEncoding(“UTF-8”))储存,在储存中文过程中先把中文给编码了再赋值储存,UTF-8是中文编码的一种
在这里插入图片描述
断点查看把中文先编码后储存到的字符串,在这里可以看到需要储存到cookie中的中文已经被编译成一些数字和符号储存了
在这里插入图片描述
在读取cookie先编码后储存的中文也需要先把这些字符译回中文在读取
在这里插入图片描述
断点查看读取cookie中储存先编码后储存的中文,在读取的时候断点查看是看到和储存的时候一样是一些数字和符号,但是在赋值的时候已经是中文字体了,可以断点把鼠标移到UserName处查看读取到的是什么字符
在这里插入图片描述
这样回填的帐号、姓名、密码就都正确得回填上了,密码也不会以明文的形式回填到姓名输入框里了
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值