Base64 解碼是一種常用的編碼解碼方式,因為它可以將二進制數(shù)據(jù)轉換為 ASCII 碼,易于傳輸和存儲。然而,在處理包含 Base64 編碼內(nèi)容的 JSON 格式時,有時會發(fā)生解碼錯誤。
{ "name": "John Doe", "age": 30, "photo": "aW1hZ2U=" }
在上面的 JSON 中,"photo" 值為經(jīng)過 Base64 編碼的圖片。我們可以使用如下代碼進行解碼:
import base64 json_data = { "name": "John Doe", "age": 30, "photo": "aW1hZ2U=" } photo_data = base64.b64decode(json_data["photo"]) print(photo_data)
然而,當 "photo" 值中包含特殊字符時,例如一個斜杠("/"),我們嘗試運行上述代碼時就會遇到以下錯誤:
ValueError: Invalid character found
這是因為 JSON 中的斜杠字符會被視為轉義字符,導致 Base64 解碼錯誤。
為了解決這個問題,我們需要進行預處理,將斜杠字符替換為其它字符,例如將 "/" 替換為 "_" 或 "-":
json_data["photo"] = json_data["photo"].replace("/", "_") photo_data = base64.b64decode(json_data["photo"]) print(photo_data)
通過預處理,我們可以成功解碼包含特殊字符的 Base64 編碼內(nèi)容。