寫代碼過程中發現,用base64編碼后會帶有b,這會影響到請求結果,該如何清除b呢?
下面來看一下實際的演示代碼:
import base64 before_base64 = 'abc'.encode() after_base64 = base64.b64encode(before_base64) print(after_base64)
運行結果如下:abc用base64編碼后應該是YWJj,但是實際上卻不只這些,這個b應該是用來區分base64編碼和字符串吧,所以如果想單純的使用base64編碼就得把多余的字符去掉。
b'YWJj'
下面列舉幾種解決辦法:
1. decode為utf-8編碼:
import base64 before_base64 = 'abc'.encode() after_base64 = base64.b64encode(before_base64) print(after_base64) right_base64 = after_base64.decode('utf-8') print(right_base64)
2. str轉化為utf-8編碼;
import base64 before_base64 = 'abc'.encode() after_base64 = base64.b64encode(before_base64) print(after_base64) right_base64 = str(after_base64, 'utf-8') print(right_base64)
3. decode為ASCII編碼
import base64 before_base64 = 'abc'.encode() after_base64 = base64.b64encode(before_base64) print(after_base64) right_base64 = str(after_base64, 'utf-8') print(right_base64)
運行結果都是;
b'YWJj' YWJj
這樣就可以獲得純凈的base64編碼了!
轉:https://zhuanlan.zhihu.com/p/180470369