問題:
最近在開發中遇見一個問題,我想要將中文字符串存入cookie,以便在另一個接口使用,卻發現取cookie的時候我想要的東西取不出來,那麼就要使用如下方法解決。
解決:
1. 存cookie:
name = "中華小當家"
response = redirect("https://www.zzz.com")
response.set_cookie("name", name.encode('utf-8').decode('latin-1'), max_age=604800)
2. 取cookie:
name_cookie = request.COOKIES.get('nickname', None)
if nickname_cookie:
nickname = name_cookie.encode('latin-1').decode('utf-8')
測試舉例:
# 編碼問題
# 中文不能存入cookie
aa = '時間煮雨'
bb = 'stormztt'
# 編碼:
result_1 = aa.encode('utf-8').decode('latin-1')
result_2 = bb.encode('utf-8').decode('latin-1')
print("編碼後:" + result_1)
print("編碼後:" + result_2)
# 解碼:
result_a = result_1.encode('latin-1').decode('utf-8')
result_b = result_2.encode('latin-1').decode('utf-8')
print("解碼後:" + result_a)
print("解碼後:" + result_b)
結果:
編碼後:时间ç®é›¨
編碼後:stormztt
解碼後:時間煮雨
解碼後:stormztt