∇ 프로그래밍 소품 및 팁

 ▼ 확장 완성형 코드를 유니코드로

C++

N/A

일반적으로 완성형 한글 코드라고 하면 KSC5601-1987을 말하곤 한다. 이 코드는 한글 2350자 가량을 담고 있는 것으로 모든 한글을 다 표시할 수 있는 문자는 아니다. 일반적으로 휴대폰의 IME를 통해서 글자를 적을 때, '똠', '펲', '쀍' 등은 입력할 수가 없는데 그 이유가 바로 KSC5601-1987을 적용하고 있기 때문이다.

사실 Windows 프로그래밍만 하거나 PC용 linux 프로그래밍을 한다면 굳이 이런 변환 함수를 만들 필요가 없다. Windows에는 MultiByteToWideChar()라는 것이 있고, linux에는 iconv()라는 막강한 코드 변환 함수가 있다. 하지만 문제는 embedded system의 경우이다. 보통 embedded system용 linux에는 iconv와 같이 용량을 많이 차지하는 것은 빌드에서 빠져 있다. (물론 직집 소스로 빌드하면 된다. 하지만 license 문제가 있는 경우가 있다) 그럴 때는 DOS 때 해왔던 것처럼 직접 변환 테이블을 소스 코드에 넣고 그것을 구현하는 방법 밖에는 없다.

어쩌다 보니 필요하게 되어서 퇴근하자마자 만들어 보았는데, 세상이 좋아져서 100줄까지 코딩 않고도 변환 함수를 만들 수 있게 되었다. (물론 거짓말이다. 변환 테이블을 만들기 위한 코드가 추가로 필요 했었다)

첨부파일 (46K)

일단 VC++용 dsw가 있으니 직접 열어 보면 예제가 있다. 물론 g++에서도 제대로 동작 한다.