Tuesday, August 01, 2006
Perl : 유니코드의 한글 낱자 11172자를 코드 번호와 함께 파일로 출력하기 - Unicode UTF-8
유니코드는 현대 한글 낱자 11172자가 모두 표현됩니다. (똠방각하의 '똠'자 등도 물론 여기에 들어 있습니다.)
유니코드의 한글 낱자 영역은
U+AC00:가
에서 시작하여
U+D7A3:힣
으로 끝납니다. 즉, "힣"이 한글이 표현할 수 있는 가장 마지막 글자입니다. "가"는 가장 첫 번째입니다.
AC00 이나 D7A3 은 16진수인데, 각 글자에 매겨진 일련 번호입니다.
원칙적으로는 U+AC00 이런 식으로 표현해야 하지만, 여기서는 간략하게 출력하도록 했습니다.
펄 코드:
이 코드를 0.pl 등의 이름으로 저장하고, 액티브펄(ActivePerl) 등으로 실행하면, 결과가 화면에 나타나지만, 윈도의 명령 프롬프트 화면은 유니코드 출력을 제대로 보여주지 못합니다.
그래서
0.pl > out.txt
이렇게 재지향(Redirection)(Piping)을 사용하여 파일로 저장해야 합니다.
출력 결과인 out.txt 파일은 UTF-8 유니코드로 되어 있습니다. 그런데 개행문자가 UNIX 스타일이기에, 윈도 메모장에서는 잘 보이지 않습니다. 울트라에디트나 Vim(VI) 에디터로 열어야 제대로 보입니다. 그런데 Vim 에디터는, UTF-8을 자동으로 인식하지 못하더군요. Vim에서 out.txt 파일을 연 후, 콜론(:)키를 눌러 명령어 모드로 들어가서
set enc=utf-8
또는
se enc=utf8
이라는 명령을 입력해 주어야 한글이 제대로 보입니다.
이것은 out.txt 의 내용, 즉 위에 있는 펄 코드의 출력 결과의 극히 일부입니다.
▶▶ 유니코드(UTF-8) 문자에 번호(Code Point) 붙이기 [펄/Perl]
▶▶ Perl, 한글 확장완성형 코드표 생성기 - Hangul Wansung Code Table Generator
한글 낱자만 모두 표시한 도표: ▶▶ 모든 한글 낱자 11172자 목록 (유니코드; Unicode)
유니코드의 한글 낱자 영역은
U+AC00:가
에서 시작하여
U+D7A3:힣
으로 끝납니다. 즉, "힣"이 한글이 표현할 수 있는 가장 마지막 글자입니다. "가"는 가장 첫 번째입니다.
AC00 이나 D7A3 은 16진수인데, 각 글자에 매겨진 일련 번호입니다.
원칙적으로는 U+AC00 이런 식으로 표현해야 하지만, 여기서는 간략하게 출력하도록 했습니다.
펄 코드:
#!/usr/bin/perl
use strict; use warnings;
use encoding "utf8", STDOUT => "utf8";
for (my $i = 0xAC00; $i <= 0xD7A3; $i++) {
printf("%04X:%s\n", $i, chr($i));
}
use strict; use warnings;
use encoding "utf8", STDOUT => "utf8";
for (my $i = 0xAC00; $i <= 0xD7A3; $i++) {
printf("%04X:%s\n", $i, chr($i));
}
이 코드를 0.pl 등의 이름으로 저장하고, 액티브펄(ActivePerl) 등으로 실행하면, 결과가 화면에 나타나지만, 윈도의 명령 프롬프트 화면은 유니코드 출력을 제대로 보여주지 못합니다.
그래서
0.pl > out.txt
이렇게 재지향(Redirection)(Piping)을 사용하여 파일로 저장해야 합니다.
출력 결과인 out.txt 파일은 UTF-8 유니코드로 되어 있습니다. 그런데 개행문자가 UNIX 스타일이기에, 윈도 메모장에서는 잘 보이지 않습니다. 울트라에디트나 Vim(VI) 에디터로 열어야 제대로 보입니다. 그런데 Vim 에디터는, UTF-8을 자동으로 인식하지 못하더군요. Vim에서 out.txt 파일을 연 후, 콜론(:)키를 눌러 명령어 모드로 들어가서
set enc=utf-8
또는
se enc=utf8
이라는 명령을 입력해 주어야 한글이 제대로 보입니다.
이것은 out.txt 의 내용, 즉 위에 있는 펄 코드의 출력 결과의 극히 일부입니다.
AC00:가
AC01:각
AC02:갂
AC03:갃
AC04:간
AC05:갅
AC06:갆
AC07:갇
AC08:갈
AC09:갉
AC0A:갊
AC0B:갋
AC0C:갌
AC0D:갍
AC0E:갎
AC0F:갏
AC10:감
AC11:갑
AC12:값
AC13:갓
...중략...
D790:힐
D791:힑
D792:힒
D793:힓
D794:힔
D795:힕
D796:힖
D797:힗
D798:힘
D799:힙
D79A:힚
D79B:힛
D79C:힜
D79D:힝
D79E:힞
D79F:힟
D7A0:힠
D7A1:힡
D7A2:힢
D7A3:힣
AC01:각
AC02:갂
AC03:갃
AC04:간
AC05:갅
AC06:갆
AC07:갇
AC08:갈
AC09:갉
AC0A:갊
AC0B:갋
AC0C:갌
AC0D:갍
AC0E:갎
AC0F:갏
AC10:감
AC11:갑
AC12:값
AC13:갓
...중략...
D790:힐
D791:힑
D792:힒
D793:힓
D794:힔
D795:힕
D796:힖
D797:힗
D798:힘
D799:힙
D79A:힚
D79B:힛
D79C:힜
D79D:힝
D79E:힞
D79F:힟
D7A0:힠
D7A1:힡
D7A2:힢
D7A3:힣
▶▶ 유니코드(UTF-8) 문자에 번호(Code Point) 붙이기 [펄/Perl]
▶▶ Perl, 한글 확장완성형 코드표 생성기 - Hangul Wansung Code Table Generator
한글 낱자만 모두 표시한 도표: ▶▶ 모든 한글 낱자 11172자 목록 (유니코드; Unicode)
tag: perl
Perl | 펄
<< Home