> 백엔드 개발 > Golang > Go 문자열에서 잘못된 UTF-8 문자를 효과적으로 처리하는 방법은 무엇입니까?

Go 문자열에서 잘못된 UTF-8 문자를 효과적으로 처리하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-07 06:44:14
원래의
622명이 탐색했습니다.

How to Effectively Handle Invalid UTF-8 Characters in Go Strings?

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

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