js获取cookie里保存的中文

由于在前端里面需要获取当前用户信息,所以我暂时把用户的中文姓名放到cookie里了,但是从cookie里面拿的时候发现是编码之后的。类似这样"\300\351\302\344"。

在后端我是直接保存的response.set_cookie('cn_name', user.cn_name)。

显然这样无法满足需求,经过几个小时的挣扎,终于解决了问题。附上代码:

js:

function getCookie(cookie_name)
{
var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name);
if (cookie_pos != -1)
{
cookie_pos += cookie_name.length + 1;
var cookie_end = allcookies.indexOf(";", cookie_pos);

if (cookie_end == -1)
{
cookie_end = allcookies.length;
}

var value = allcookies.substring(cookie_pos, cookie_end);
}
return value;
}
let username = getCookie('cn_name');
var cn_name = decodeURI(username);
Django:
from django.utils.http import urlquote
cn_name_str = urlquote(user.cn_name)
response.set_cookie('cn_name', cn_name_str)
cookie是使用escape进行编码的,所以在保存cookie的时候要使用Django自带的中文编码进行编码,之后再存入cookie,而在js里也要上使用decodeURI进行解码。

转载于:https://www.cnblogs.com/qinghuaL/p/9372634.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值