2008. 12. 10.

CLISP 에서 한글 출력(UTF-8, euc-kr)

현재 리눅스(데비안 Lenny)에서 Emacs로 LISP 스크립트를 구성하고 있다.
그러다보니 한글 출력에 몇가지 애로 사항이 생긴다. FORMAT 함수등에서 일어나는 문제이다.

(format t "한글을 씁니다")


라고 입력하는 경우 이를 명령어 행에서 실행시켜보면 다음과 같은 에러가 나온다.

siabard@devel02:~/project/lisp$ clisp hantest.lisp
*** - invalid byte sequence #xC7 #xD1 in CHARSET:UTF-8 conversion

즉 UTF-8에서 가능한 캐릭터 코딩이 아니라는 말이다.

이제 Emacs에서 캐릭터 셋을 utf-8로 바꾼다. (C-x C-m f 를 순서대로 누르고 utf-8을 입력)

siabard@devel02:~/project/lisp$ clisp hantest.lisp
한글을 씁니다

정상적으로 출력되는 것을 볼 수 있다. 그렇다면 euc-kr 로 출력을 원한다면 어떻게 해야할까?

이 경우는 Emacs에서 먼저 캐릭터 셋을 korean-iso-8bit-unix 로 저장을 한다. 그리고 clisp 실행시 -E 옵션을 주어 출력을 한다.

siabard@devel02:~/project/lisp$ clisp -E euc-kr hantest.lisp
�ѱ��� ���ϴ

글자가 깨진 이유는 현재 필자가 사용하는 터미널의 문자셋이 en_US.UTF-8이기 때문이다. 유니코드면 다 되기때문에 굳이 ko_KR.EUC_KR 같은 다른 셋은 사용하지 않는다.

댓글 없음:

댓글 쓰기