python將base64編碼/解碼


  本樣例旨在解決base64編碼的解碼,提供了四種場景,希望可以幫到大家~

# -*- coding:utf-8 -*-
#將base64編碼/解碼包
import base64
#導入url解碼包
from urllib import parse
#普通中文
s = "你好"
#帶豎線的中文
str1 = '中國|陝西省|西安市|雁塔區|小寨東路|178號'
#base64編碼后的樣例
example = '5Lit5Zu9fOmZleilv+ecgXzopb/lronluIJ86ZuB5aGU5Yy6fOWwj+WvqOS4nOi3r3wxNzjlj7c='
#先base64編碼,再url編碼后的樣例
example_new = '5Lit5Zu9fOmZleilv%2BecgXzopb%2FlronluIJ86ZuB5aGU5Yy6fOWwj%2BWvqOS4nOi3r3wxNzjlj7c%3D'
#場景一:普通中文base64編碼后,得到帶有b的編碼結果
#將字符為unicode編碼轉換為utf-8編碼
bs = base64.b64encode(s.encode("utf-8"))
#得到的編碼結果前帶有b
print('帶b的編碼結果:',bs)
#將上面帶有b的編碼結果解碼
bbs = str(base64.b64decode(bs), "utf-8")
#解碼
print('帶b的編碼結果解碼:',bbs)
#場景二:將帶有豎線(可以沒有)的中文base64編碼后,得到不帶b的編碼結果
bs = str(base64.b64encode(str1.encode("utf-8")), "utf-8")
#去掉編碼結果前的 b
print('不帶b的編碼結果:',bs)
#將上面不帶b的編碼結果解碼
bbs = str(base64.b64decode(bs), "utf-8")
#解碼
print('不帶b的編碼結果解碼:',bbs)
#場景三:base64編碼后的樣例的解碼
bbs = str(base64.b64decode(example), "utf-8")
print('base64編碼后的樣例解碼:',bbs) # 解碼
#場景四:先base64編碼,再url編碼后的樣例的解碼
str3 = parse.unquote(example_new)  #解碼字符串
print('url解碼后:',str3)                 #str3=haha哈哈
bbs = str(base64.b64decode(str3), "utf-8")
print('先base64編碼,再url編碼后的樣例的解碼:',bbs) # 解碼

結果:

帶b的編碼結果: b'5L2g5aW9'
帶b的編碼結果解碼: 你好
不帶b的編碼結果: 5Lit5Zu9fOmZleilv+ecgXzopb/lronluIJ86ZuB5aGU5Yy6fOWwj+WvqOS4nOi3r3wxNzjlj7c=
不帶b的編碼結果解碼: 中國|陝西省|西安市|雁塔區|小寨東路|178號
base64編碼后的樣例解碼: 中國|陝西省|西安市|雁塔區|小寨東路|178號
url解碼后: 5Lit5Zu9fOmZleilv+ecgXzopb/lronluIJ86ZuB5aGU5Yy6fOWwj+WvqOS4nOi3r3wxNzjlj7c=
先base64編碼,再url編碼后的樣例的解碼: 中國|陝西省|西安市|雁塔區|小寨東路|178號

 


免責聲明!

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



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