반응형
Golang: euc-kr → utf-8 인코딩 변환
Golang과 같이 utf-8가 기본인 프로그래밍 언어를 사용하다보면, 한번씩 부딪히는 것이 텍스트 인코딩 문제인 듯 합니다. 몇몇 웹사이트에서 크롤링을 한다거나, 엑셀에 있는 euc-kr로 된 문자들을 읽는 과정에서 값을 출력해 볼 때 전혀 알아볼 수 없는 글자가 출력되어서 답답하곤 합니다.
Golang에서 euc-kr과 utf-8 사이를 오고 갈 수 있는 방법이 몇 개 있으나, 제 기준으로 그나마 짧고 직관적으로 할만 했던 것은 iconv 패키지입니다.
패키지 설치
go get github.com/djimenez/iconv-go
CMD 등의 터미널 환경에서 위의 명령어를 입력합니다.
혹시 윈도우에서 gcc 등을 찾을 수 없다고 한다면, MinGW를 먼저 설치합니다. (MinGW-w64 : Windows에서 GNU 컴파일러 사용하기)
인코딩 변환하기
import (
iconv "github.com/djimenez/iconv-go"
)
iconv를 가져와서 아래와 같이 단순하게 변환 가능합니다.
out, _ := iconv.ConvertString(string(text), "euc-kr", "utf-8")
ConvertString함수의 인자는 다음과 같습니다.
- 변환 전 문자열(original) string
- 변환 전 문자열(original) 인코딩
- 변환 후 문자열(new) 인코딩
자세한 설명은 GoDoc에서 확인 가능합니다. (godoc.org/github.com/djimenez/iconv-go)
반응형
'컴 & 프로그래밍 > Golang' 카테고리의 다른 글
Golang: Naver 지도 API를 이용한 위도, 경도 구하기 (0) | 2022.06.27 |
---|---|
Golang : 키보드 입력받기 (1) | 2020.10.01 |