>백엔드 개발 >Golang >Go에서 ANSI 텍스트를 UTF-8로 변환하는 방법은 무엇입니까?

Go에서 ANSI 텍스트를 UTF-8로 변환하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-26 13:48:10792검색

How to Convert ANSI Text to UTF-8 in Go?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.