Mac OS X의 한글 저장 방식

Mac OS X에서는 모든 한글을 유니코드로 저장하고 있습니다. 하지만 윈도우에서 접근하는 경우 모두 깨져 보이게 되는데 리눅스의 경우는 그렇지 않죠.

Mac OS X의 경우 Unicode Normalization 규칙에서 최대한 분해된 상태인 NFD(Normalization Form D)로 저장하고 lookup, readdir등의 파일시스템 요청을 그 상태 그대로 응답합니다. 따라서, Mac OS X 으로부터의 UTF-8 유니코드 이름은 전부 최대한 디컴포즈된 상태로 오기 때문에, 일반적으로 조합된 상태로 쓰는 한글 (U+AC00)영역만을 지원하는 xterm 등 일반 애플리케이션들에서는 정상적으로 볼 수 없습니다.

Unicode Normalization Forms - http://unicode.org/reports/tr15/

U+AC00 영역 - http://www.unicode.org/charts/PDF/UAC00.pdf

한글을 제대로 보이게 하시기 위해서는 U+1100영역으로 완전히 분해된 한글을 ls에서 뿌리기 전에 조합해 주거나, 아니면 터미널에서 U+1100 출력을 지원하는 방법이 있고, MacOS X에서 패치하는 방법도 있습니다.

U+1100 영역 - http://www.unicode.org/charts/PDF/U1100.pdf

NFD
Normalization Form Canonical Decomposition
Characters are decomposed by canonical equivalence.
NFC
Normalization Form Canonical Composition
Characters are decomposed and then recomposed by canonical equivalence. It is possible for the result to be a different sequence of characters than the original.
NFKD
Normalization Form Compatibility Decomposition
Characters are decomposed by compatibility equivalence.
NFKC
Normalization Form Compatibility Composition
Characters are decomposed by compatibility equivalence, then recomposed by canonical equivalence.


그렇지만, most decomposed로 저장하는 것은 Darwin의 기본 정책이기 때문에, 이쪽은 매우 힘들고, 또한 ls나 xterm에서 normalization을 지원하도록 하는 것도 상당히 힘든 일입니다. 이 문제에 대해서는 우선은 뾰족한 해결책이 없습니다.

참고로, NFS를 직접 쓰시려는 목적이 아니고, 그냥 옮기시려는 목적이라면 KoreanCodecs처럼 U+1100과 U+AC00 간의 전환을 도와주는 툴을 사용하시면 쉽게 이름을 바꿀 수는 있습니다. 그리고, GNOME2.4같이 GTK+2를 기반으로 한 프로그램들은 Unicode Normalization을 지원하고 있어서 Nautilus같은 파일 관리자를 사용하시면 MacOS X 파일 시스템의 한글도 보실 수 있습니다.

- 출처 : 장혜식님의 방명록 -
http://openlook.org/guestbook/reply.php?id=68&db=perky
(블로그 내용이 아닌 방명록에 있어서 옮겨 왔습니다.)

Posted by Enowy

2008/06/23 10:48 2008/06/23 10:48