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 중국어 웹사이트의 기타 관련 기사를 참조하세요!