R&D/OS

Solaris 에서 UTF-8 한글 사용하기 (Putty에서)

sunshout 2007. 6. 29. 20:23
솔라리스에서 UTF-8을 사용하는 방법

운영체제 : Solaris 9 (Sparc)

1. 사용 가능한 Locale 보기

Locale은 사용자의 언어와 환경에 대한 정의라고 보면 된다.

한글 인코딩은 크게 두 종류가 있다고 보면 된다.
ko_KR.EUC (ko 와 동일 , Linux 에서는 ko_KR.eucKR 과 동일)
ko_KR.UTF-8 (ko.UTF-8과 동일)

cf. 영어만 사용할 경우 (C, POSIX로 하면 된다)
Locale 폴더 (Language : text)
폴더 위치 :  /usr/lib/locale (솔라리스)

/usr/share/locale (FreeBSD)
/usr/lib/locale (Linux)


[/usr/lib/locale @ktgate] $ ls -al
total 42
drwxr-xr-x 16 root bin    512 2006-09-21 23:25 .
drwxr-xr-x 93 root bin  22016 2006-09-22 18:34 ..
drwxr-xr-x  8 root bin    512 2006-09-21 22:16 C
drwxr-xr-x  5 root bin    512 2006-09-21 22:30 common
-rw-r--r--  1 root bin    270 2000-11-15 06:44 geo
drwxr-xr-x 10 root bin    512 2006-09-21 22:29 hi_IN.UTF-8
drwxr-xr-x  4 root bin    512 2006-09-21 22:28 iso_8859_1
drwxr-xr-x  9 root bin    512 2006-09-21 22:34 ko
drwxr-xr-x  3 root bin    512 2006-09-21 22:34 ko_KR.EUC
drwxr-xr-x  3 root bin    512 2006-09-21 23:25 ko_KR.EUC@dict
drwxr-xr-x  4 root bin    512 2006-09-21 22:34 ko_KR.UTF-8
drwxr-xr-x  3 root bin    512 2006-09-21 23:25 ko_KR.UTF-8@dict
drwxr-xr-x  7 root bin    512 2006-09-21 22:34 ko.UTF-8
-rw-r--r--  1 root bin   1848 2000-11-15 06:44 lcttab
lrwxrwxrwx  1 root root     3 2006-09-21 22:15 POSIX -> ./C
lrwxrwxrwx  1 root root     7 2006-09-21 22:37 th -> ./th_TH
drwxr-xr-x 10 root bin    512 2006-09-21 22:37 th_TH
drwxr-xr-x  3 root bin    512 2006-09-21 22:37 th_TH.ISO8859-11
drwxr-xr-x  3 root bin    512 2006-09-21 22:37 th_TH.TIS620
drwxr-xr-x 10 root bin    512 2006-09-21 22:37 th_TH.UTF-8

2. 현재 자신의 Locale 보기


현재 Locale 보기 (Language : text)
[/usr/lib/locale @ktgate] $ locale
LANG=ko_KR.UTF-8
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_ALL=



Locale에 대해서 간단하게 요약하고 가면
(LANG이 가장 큰 개념이라고 보면 된다.)
LC_CTYPE
Character classification and case conversion.
LC_COLLATE
Collation order.
LC_MONETARY
Monetary formatting.
LC_NUMERIC
Numeric, non-monetary formatting.
LC_TIME
Date and time formats.
LC_MESSAGES
Formats of informative and diagnostic messages and interactive responses.


3. 자신의 Locale을 UTF-8로 변경

.bash_profile 설정 파일 (Language : text)
LANG=ko_KR.UTF-8
export LANG

이렇게 설정을 하면 영어를 제외한 모든 언어는 UTF-8로 인식하고 출력한다.
그런데 글자(파일 내용 또는 파일명)가 깨져서 보이는 것들이 있다.

이는 운영체제에서 UTF-8로 클라이언트 프로그램(ex. Putty)에 전달했는데
클라이언트 프로그램이 encoding을 어떻게 해석해야 하는지 몰라서 그렇다.

4. Putty 에서 UTF-8 설정하기 (Window -> Translation)


사용자 삽입 이미지
Putty의 환경 설정에서
"Translation"
"UTF-8"로 설정을 변경한다.























이렇게 하면 터미널의 인코딩에 대해서 마쳤다.

하지만 이것이 끝난 것은 아니다.
우리가 주로 사용하는 Emacs 나 Vi에서 UTF-8을 인식하게 해야 한다.

이건 다음 편에...

여기에서 기억해야 할 가장 큰 교훈은
terminal에서 보이는 글자는 클라이언트 프로그램에 의해서 결정된다는 것이다.