[go] CSV 파일의 인코딩 변환 방법
CSV 파일의 인코딩 변환 방법
대부분의 경우 CSV 파일은 UTF-8로 인코딩되어 있습니다. 그러나 때로는 다른 인코딩 형식으로 작성된 CSV 파일을 다루어야 할 때가 있습니다. Go 언어에서 이를 처리하기 위해 몇 가지 방법이 있습니다.
1. 파일을 읽고 변환하는 방법
가장 일반적인 방법은 파일을 읽고 적절한 인코딩으로 변환하는 것입니다.
package main
import (
"os"
"io/ioutil"
"golang.org/x/text/encoding/unicode"
"golang.org/x/text/transform"
"encoding/csv"
"fmt"
)
func main() {
file, err := os.Open("input.csv")
if err != nil {
fmt.Println("Error:", err)
return
}
reader := transform.NewReader(file, unicode.BOMOverride(encoding.Windows1252.NewDecoder()))
contents, err := ioutil.ReadAll(reader)
if err != nil {
fmt.Println("Error:", err)
return
}
r := csv.NewReader(contents)
// CSV 파일 처리
}
이 예제에서는 golang.org/x/text/encoding
패키지를 사용하여 CSV 파일을 Windows-1252
로 인코딩 된 파일로 변환하였습니다.
2. 인코딩된 CSV 파일을 직접 읽는 방법
때로는 파일을 읽지 않고 바로 인코딩된 CSV 파일을 읽을 수 있는 방법이 필요할 수 있습니다.
package main
import (
"os"
"golang.org/x/text/encoding/unicode"
"golang.org/x/text/transform"
"encoding/csv"
"fmt"
)
func main() {
file, err := os.Open("input.csv")
if err != nil {
fmt.Println("Error:", err)
return
}
reader := csv.NewReader(transform.NewReader(file, unicode.BOMOverride(encoding.EUC-KR.NewDecoder())))
// CSV 파일 처리
}
위의 예제에서는 golang.org/x/text/encoding
패키지를 사용하여 직접 인코딩된 CSV 파일을 읽고 있습니다.
golang.org/x/text/encoding
패키지는 Go 언어에서 문자 인코딩을 다루는데 유용한 패키지 입니다.
결론
CSV 파일을 다룰 때 인코딩을 변환해야 하는 경우가 발생할 수 있습니다. Go 언어에서는 golang.org/x/text/encoding
패키지를 사용하여 파일을 읽고 필요한 인코딩으로 변환하거나, 직접 인코딩된 CSV 파일을 읽을 수 있습니다.