Data Base64 Haram dalam base64.StdEncoding.DecodeString()
Apabila cuba menyahkod rentetan berkod Base64 menggunakan base64.StdStringEncoding.Decode (str), anda mungkin menghadapi ralat "data base64 haram pada input bait 4." Ralat ini biasanya berlaku apabila rentetan input tidak dikodkan dengan betul Base64.
Pertimbangkan kod berikut:
data, errBase := base64.StdEncoding.DecodeString(Base64Image) if errBase != nil { fmt.Println("error:", errBase) return false }
Dalam kes ini, pembolehubah Base64Image mengandungi rentetan berkod Base64. Walau bagaimanapun, jika rentetan input juga mengandungi bahagian yang tidak dikodkan Base64, seperti awalan skema URI Data, proses penyahkodan mungkin gagal pada aksara bukan Base64 pertama yang ditemuinya.
Skim URI Data biasanya bermula dengan "data:" diikuti dengan jenis MIME, seperti "imej/png," dan mungkin termasuk rentetan ;base64. Untuk mengekstrak data yang dikodkan Base64 sebenar daripada URI Data, anda perlu mengalih keluar awalan sehingga koma (termasuk koma).
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:] fmt.Println(b64data)
Setelah anda mengekstrak data yang dikodkan Base64 tulen, anda kemudian boleh menyahkodnya menggunakan base64.StdEncoding.DecodeString().
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
Oleh mengasingkan data berkod Base64 dan menyahkodnya dengan betul, anda boleh mengelakkan ralat "data base64 haram" dan berjaya memproses data seperti yang dikehendaki.
Atas ialah kandungan terperinci Mengapakah `base64.StdEncoding.DecodeString()` Mengembalikan 'data base64 yang tidak sah'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!