json.Unmarshal을 사용하여 JSON 출력을 비정렬화하려고 할 때 Microsoft Translator에 대한 웹 서비스 요청에서 오류가 발생했습니다. 발생한 구체적인 오류는 "값의 시작을 찾는 잘못된 문자 'ï'입니다."
JSON 응답을 문자열로 검사한 결과 데이터가 유효한 것으로 나타났습니다. . 그러나 응답의 바이트 배열과 예상 데이터의 수동 마샬링 버전을 비교한 결과 불일치가 드러났습니다.
이 불일치는 바이트 순서 표시가 있기 때문이었습니다. (BOM) 응답에 있습니다. BOM은 텍스트 파일의 인코딩을 식별하는 특수 문자입니다(이 경우 UTF-8).
JSON 응답을 디코딩하기 전에 BOM을 제거해야 합니다. 이는 다음 코드 줄을 사용하여 달성할 수 있습니다.
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
bytes.TrimPrefix 함수는 본문 바이트 배열의 시작 부분에서 BOM을 제거하여 후속 json.Unmarshal을 허용합니다. 잘못된 문자 오류 없이 작업을 진행하세요.
오류 json.Unmarshal 중 "값의 시작 부분을 찾는 잘못된 문자 'ï'"는 JSON 응답의 BOM으로 인해 발생할 수 있습니다. bytes.TrimPrefix 함수를 사용하여 BOM을 제거하면 문제가 해결되고 데이터가 성공적으로 역마샬링될 수 있습니다.
위 내용은 JSON Unmarshal에서 \'잘못된 문자 \'ï\'가 값의 시작 부분을 찾는 중\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!