Go에서 문자열의 잘못된 UTF-8 문자를 처리하는 방법
json.Marshal을 사용하여 문자열 목록을 마샬링할 때 다음과 같은 문제가 발생할 수 있습니다. "json: 문자열에 잘못된 UTF-8"이라는 오류 메시지가 나타납니다. 이는 문자열 내의 잘못된 UTF-8 시퀀스로 인해 발생합니다.
잘못된 문자 대체 또는 제거
Python에는 제거, 대체 또는 발생시키는 메서드가 있습니다. 잘못된 UTF-8 문자에 대한 예외입니다. Go는 유사한 솔루션을 제공합니다.
strings.ToValidUTF8(Go 1.13) 사용
이 함수는 문자열에서 유효하지 않은 UTF-8 시퀀스를 제거하고 이를 유니코드 대체 항목으로 바꿉니다. 문자(U FFFD).
fixedString := strings.ToValidUTF8("a\xc5z", "")
utf8.RuneError를 사용한 매핑 및 교체(Go 1.11 )
strings.Map 및 utf8을 사용하여 문자열의 문자를 매핑할 수도 있습니다. 룬오류. 문자가 유니코드 오류(잘못된)인 경우 지정된 대체 값(예: -1)으로 대체됩니다.
fixUtf := func(r rune) rune { if r == utf8.RuneError { return -1 } return r } var input1 = "a\xc5z" fmt.Println(strings.Map(fixUtf, input1)) // Output: az var input2 = "posic�o" fmt.Println(strings.Map(fixUtf, input2)) // Output: posico
위 내용은 Go 문자열에서 잘못된 UTF-8 문자를 효과적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!