簡體   English   中英

為什么以“b'...'”形式解碼 base64 字符串(帶有來自 Python 字節對象的 b 前綴)會產生意想不到的結果?

[英]Why does decoding base64 string on the form “b'…'” (with the b prefix from Python bytes object) gives unexpected results?

在使用帶有b'...'base64.b64decode時,我遇到了一個奇怪的問題。 這是說明問題的代碼片段。

>>> base64.b64encode(b"AAAA")
b'QUFBQQ=='
>>> s1 = "b'QUFBQQ=='"
>>> s2 = "QUFBQQ=="
>>> base64.b64decode(s1)
b'm\x05\x05\x05\x04'
>>> base64.b64decode(s2)
b'AAAA'

base64.b64encode(b"AAAA")的結果被復制並保存為字符串s1 我也只復制字節(即b'...'中的字符)並將其保存為字符串s2 當用s1調用base64.b64decode時,我會胡說八道,而用s2調用它會得到預期的結果。 我懷疑'符號會導致一些問題,因為它不是有效的 base 64 符號。

base64.b64decode(s1)中發生了什么會產生奇怪的結果?

當你設置

s1 = "b'QUFBQQ=='"

然后字符串包括 b 和兩個單抽動。 只需擺脫雙引號:

s1 = b'QUFBQQ=='

單引號外的 'b' 表示將其解釋為字節文字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM