1. 程式人生 > >cookies儲存購物車資料的編碼問題(pickle和base64)

cookies儲存購物車資料的編碼問題(pickle和base64)

在儲存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型別