모두의 프린터는 어떠한 경우에도 회원가입, 카드결제를 요구하지 않습니다.

CP949 <-> UTF-8 변환

Go언어는 기본적으로 UTF-8을 인코딩으로 사용합니다만. 윈도의 경우 기본적으로 CP949 또는 UTF-16입니다. 한글 윈도를 설치한 경우에는 많은 경우에 CP949가 기본 인코딩인 경우가 대부분이라 exec 패키지 등으로 콘솔 명령어를 실행하고 결과를 받아서 사용하는 등의 경우에 한글문자가 깨지는 문제를 겪을 수 있습니다.

이때 사용할수 있는 인코딩 변환 코드입니다.

Go
import (
    "golang.org/x/text/encoding/korean"
    "golang.org/x/text/transform"
)
 

/**
* ansi string을 utf8로 변환
**/
func ansiToUni(src []byte) []byte {
	got, _, _ := transform.String(korean.EUCKR.NewDecoder(), string(src))

	return []byte(got)
}

func ansiToUniString(src string) string {
	got, _, _ := transform.String(korean.EUCKR.NewDecoder(), src)

	return got
}

/**
*	uniToAnsi
**/
func uniToAnsi(src []byte) []byte {
	got, _, _ := transform.String(korean.EUCKR.NewEncoder(), string(src))

	return []byte(got)
}

%d