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進行解碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM