Base64 解碼錯誤:「輸入位元組 4 處存在非法 Base64 資料」
嘗試使用 base64.StdEncoding 解碼 64編碼的字串時.DecodeString(str),您可能會遇到錯誤:「輸入位元組處存在非法base64資料4.」此錯誤表示提供的輸入不是有效的 Base64 格式。
您的情況的問題不在於 Base64 編碼本身,而在於輸入字串。您正在嘗試解碼資料 URI 方案,而不是純 Base64 字串。
資料URI 方案將網頁中的資料表示為內聯內容,如下所示格式:
資料:[
在您的情況下,輸入是包含image/png MIME 類型和Base64 編碼資料的數據URI 方案。要解碼它,您首先需要提取 Base64 部分。
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:] fmt.Println(b64data)
輸出:
iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA
現在您可以解碼提取的Base64 字符串:
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
輸出:
[137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 100 0 0 0 100 8 6 0]
透過從Data URI 中提取Base64 資料方案並執行解碼過程,您可以成功解碼Base64 編碼的內容。
以上是為什麼在解碼資料 URI 時收到「輸入位元組 4 處存在非法 Base64 資料」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!