cookies儲存購物車資料的編碼問題(pickle和base64)
阿新 • • 發佈:2018-11-27
在儲存cookies時,如果存在著中文字元,cookies儲存會報錯。所以需要對資料進行編碼。
通常cookies的儲存都是以Base64來儲存。所以先要對資料編碼成bytes,再編碼成base64字串。
一、pickle模組: 將資料轉換為bytes
pickle模組是python的標準模組,提供了對於python資料的序列化操作,可以將資料轉換為bytes型別,其序列化速度比json模組要高。
-
pickle.dumps() 將python資料序列化為bytes型別
-
pickle.loads() 將bytes型別資料反序列化為python的資料型別
二、base64模組: 將bytes型別資料轉成base64編碼的bytes型別
Base64是一種基於64個可列印字元來表示二進位制資料的表示方法。由於2^6=64,所以每6個位元為一個單元,對應某個可列印字元。3個位元組有24個位元,對應於4個Base64單元,即3個位元組可由4個可列印字元來表示。在Base64中的可列印字元包括字母A-Z、a-z、數字0-9,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。
格式:gAN9cQAoWAEAAAAxcQF9cQIoWAUAAABjb3VudHEDSwpYCAAAAHNlbGVjdGVkcQSIdVgBAAAAMnEFfXEGKGgDSxRoBIl1dS4=
python標準庫中提供了base64模組,用來進行轉換
-
base64.b64encode() 將bytes型別資料進行base64編碼,返回編碼後的bytes型別
-
base64.b64deocde() 將base64編碼的bytes型別進行解碼,返回解碼後的bytes型別