> 백엔드 개발 > Golang > Base64 문자열을 디코딩할 때 '입력 바이트 4의 잘못된 Base64 데이터' 오류가 발생하는 이유는 무엇입니까?

Base64 문자열을 디코딩할 때 '입력 바이트 4의 잘못된 Base64 데이터' 오류가 발생하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-29 16:24:10
원래의
660명이 탐색했습니다.

Why Am I Getting an

예외: 입력 바이트 4의 잘못된 Base64 데이터

base64.StdEncoding.DecodeString을 사용하여 base64로 인코딩된 문자열을 디코딩하려고 하면 "입력 바이트 4에 잘못된 base64 데이터" 오류가 발생할 수 있습니다. 이 오류는 데이터 URI 체계를 부적절하게 처리했기 때문에 발생합니다.

데이터 URI 체계는 웹 페이지 내에서 데이터를 인라인으로 인코딩하여 외부 리소스와 유사합니다. 형식은 다음과 같습니다.

data:[<MIME-type>][;charset=<encoding>][;base64],<data>
로그인 후 복사

여기서:

  • 데이터 유형(예: 이미지/png)을 지정합니다.
  • 문자 인코딩을 나타냅니다(선택 사항)
  • ";base64"는 Base64 인코딩을 나타냅니다
  • Base64로 인코딩된 실제 데이터가 포함되어 있습니다

귀하의 시나리오에서 문제를 해결하려면 디코딩하기 전에 데이터 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿