首頁 >後端開發 >Golang >為什麼在解碼資料 URI 時收到「輸入位元組 4 處存在非法 Base64 資料」錯誤?

為什麼在解碼資料 URI 時收到「輸入位元組 4 處存在非法 Base64 資料」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-01 00:40:11739瀏覽

Why Am I Getting a

Base64 解碼錯誤:「輸入位元組 4 處存在非法 Base64 資料」

嘗試使用 base64.StdEncoding 解碼 64編碼的字串時.DecodeString(str),您可能會遇到錯誤:「輸入位元組處存在非法base64資料4.」此錯誤表示提供的輸入不是有效的 Base64 格式。

您的情況的問題不在於 Base64 編碼本身,而在於輸入字串。您正在嘗試解碼資料 URI 方案,而不是純 Base64 字串。

資料URI 方案將網頁中的資料表示為內聯內容,如下所示格式:

資料:[][;charset=][; base64],

在您的情況下,輸入是包含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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn