Go에서 ANSI 텍스트를 UTF-8로 변환
Go에서는 모든 문자열이 UTF-8 형식으로 저장됩니다. 그러나 다른 문자 인코딩을 사용하는 ANSI 텍스트를 UTF-8로 변환해야 하는 상황이 발생할 수 있습니다. 이를 달성하는 방법은 다음과 같습니다.
Go 언어 사양에 따르면 모든 문자열은 내부적으로 UTF-8로 처리됩니다. 따라서 명시적인 변환이 필요하지 않습니다. ANSI 텍스트를 나타내는 바이트 배열이 있는 경우 다음 코드 조각을 사용하여 Go 문자열로 변환할 수 있습니다.
import ( "bytes" "unicode/utf8" ) func convertANSItoUTF8(ansiBytes []byte) string { reader := bytes.NewReader(ansiBytes) decoder := utf8.RuneReader(reader) var utf8String []rune for { r, size, err := decoder.ReadRune() if err != nil { break } utf8String = append(utf8String, r) } return string(utf8String) }
이 함수는 utf8.RuneReader 함수를 사용하여 ANSI 바이트를 반복하고 변환합니다. UTF-8 룬으로 변환합니다. 그런 다음 룬이 슬라이스에 추가되고 최종적으로 UTF-8 문자열로 변환됩니다.
참고: 이 함수는 ANSI 입력이 유효하다고 가정합니다. 유효하지 않은 시퀀스가 있으면 함수의 동작이 정의되지 않습니다.
위 내용은 Go에서 ANSI 텍스트를 UTF-8로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!