Go에서 표준 라이브러리는 모든 텍스트 파일에 대해 UTF-8 인코딩을 가정합니다. 그러나 다른 문자 집합으로 인코딩된 파일의 경우에는 그렇지 않을 수 있습니다. 이 문서에서는 golang.org/x/text/encoding 패키지를 사용하여 Go에서 UTF-8이 아닌 텍스트 파일을 읽는 방법을 설명합니다.
golang.org/x/text/encoding 패키지는 일반 텍스트 파일에 대한 인터페이스를 제공합니다. UTF-8로 변환하거나 UTF-8에서 변환할 수 있는 문자 인코딩입니다. 예를 들어 golang.org/x/text/encoding/simplifiedchinese 하위 패키지는 GB18030, GBK 및 HZ-GB2312용 인코더를 제공합니다.
예: GBK 인코딩 파일 읽기
package main import ( "bufio" "fmt" "log" "os" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) func main() { const filename = "example_GBK_file" // Read UTF-8 from a GBK encoded file f, err := os.Open(filename) if err != nil { log.Fatal(err) } r := transform.NewReader(f, simplifiedchinese.GBK.NewDecoder()) // Read converted UTF-8 from `r` as needed sc := bufio.NewScanner(r) for sc.Scan() { fmt.Printf("Read line: %s\n", sc.Bytes()) } if err := sc.Err(); err != nil { log.Fatal(err) } if err = f.Close(); err != nil { log.Fatal(err) } }
이 예에서는 변환을 사용합니다.NewReader os.File 객체를 사용하고 GBK에서 UTF-8로 즉시 디코딩을 수행합니다.
추가 참고 사항:
위 내용은 Go에서 UTF-8로 인코딩되지 않은 텍스트 파일을 읽는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!