반응형

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함수의 인자는 다음과 같습니다.

  1. 변환 전 문자열(original) string
  2. 변환 전 문자열(original) 인코딩
  3. 변환 후 문자열(new) 인코딩

 

자세한 설명은 GoDoc에서 확인 가능합니다. (godoc.org/github.com/djimenez/iconv-go)

반응형

+ Recent posts