> 백엔드 개발 > Golang > Golang의 json.Unmarshal에서 값의 시작을 찾는 \'잘못된 문자 \'�\'를 해결하는 방법\' 오류를 해결하는 방법은 무엇입니까?

Golang의 json.Unmarshal에서 값의 시작을 찾는 \'잘못된 문자 \'�\'를 해결하는 방법\' 오류를 해결하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-30 18:10:15
원래의
312명이 탐색했습니다.

How to Resolve the

json.Unmarshal을 사용할 때 "잘못된 문자 'ï'가 값의 시작 부분을 찾고 있습니다." 오류 발생

다음에서 받은 JSON 데이터를 구문 분석하려고 할 때 Golang의 json.Unmarshal 함수를 사용하는 HTTP 요청에서 다음 오류가 발생할 수 있습니다. 발생:

"invalid character 'ï' looking for beginning of value"
로그인 후 복사

이 오류는 일반적으로 JSON 응답에 BOM(바이트 순서 표시) 문자가 포함된 경우에 발생합니다. BOM은 텍스트 파일의 인코딩을 식별하며 디코딩하기 전에 제거해야 합니다.

이 문제를 해결하려면 다음 코드를 사용하여 JSON 응답에서 BOM 문자를 제거할 수 있습니다.

body := bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
로그인 후 복사

BOM 문자가 제거되면 JSON 응답을 예상대로 데이터 구조로 역마샬링할 수 있습니다.

예를 들어 다음 코드를 수정하여 처리할 수 있습니다. BOM이 포함된 JSON 응답:

body, err := ioutil.ReadAll(response.Body)
defer response.Body.Close()
if err != nil {
    return "", tracerr.Wrap(err)
}

// Remove BOM
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf"))

transTransform = TransformTextResponse{}
err = json.Unmarshal(body, &transTransform)
if err != nil {
   return "", tracerr.Wrap(err)
}
로그인 후 복사

JSON 응답을 구문 분석하기 전에 BOM 문자를 제거하면 오류가 해결되고 데이터 구조가 성공적으로 역마샬링될 수 있습니다.

위 내용은 Golang의 json.Unmarshal에서 값의 시작을 찾는 \'잘못된 문자 \'�\'를 해결하는 방법\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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