例外: 入力バイト 4 の Base64 データが不正です
base64.StdEncoding.DecodeString を使用して Base64 でエンコードされた文字列をデコードしようとすると、 「入力バイト 4 に不正な Base64 データがあります」エラーが発生する場合があります。このエラーは、データ URI スキームの不適切な処理が原因で発生します。
データ URI スキームは、外部リソースと同様に、Web ページ内でデータをインラインでエンコードします。形式は次のようになります。
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
ここで、
シナリオの問題を修正するには、デコードする前にデータ URI スキームから Base64 でエンコードされたデータを抽出する必要があります。これを実現するには、カンマまでのプレフィックスを削除します:
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',') + 1:]
これで、base64 でエンコードされたデータが得られ、正常にデコードできます:
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
以上がBase64 文字列をデコードするときに「入力バイト 4 に不正な Base64 データがあります」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。