LogIn E-mail
¼³°èÀ̾߱â
[Perl]Çѱ¹¾î ÀÎÄÚµù
# 51     70.1.1 09:00

PerlÀº 5.8.0ÆǺÎÅÍ À¯´ÏÄÚµå/ISO 10646¿¡ ´ëÇÑ ±¤¹üÀ§ÇÑ Áö¿øÀ» ÇÕ´Ï´Ù. À¯´ÏÄÚµå Áö¿øÀÇ ÀÏȯÀ¸·Î ÇÑÁßÀÏÀ» ºñ·ÔÇÑ ¼¼°è °¢±¹¿¡¼­ À¯´ÏÄÚµå ÀÌÀü¿¡ ¾²°í ÀÖ¾ú°í Áö±Ýµµ ³Î¸® ¾²ÀÌ°í ÀÖ´Â ¼ö¸¹Àº ÀÎÄÚµùÀ» Áö¿øÇÕ´Ï´Ù.

À¯´ÏÄÚµå´Â Àü ¼¼°è¿¡¼­ ¾²ÀÌ´Â ¸ðµç ¾ð¾î¸¦ À§ÇÑ Ç¥±â ü°è - À¯·´ÀÇ ¶óƾ ¾ËÆĺª, Å°¸± ¾ËÆĺª, ±×¸®½º ¾ËÆĺª, Àεµ¿Í µ¿³² ¾Æ½Ã¾ÆÀÇ ºê¶ó¹Ì °è¿­ ½ºÅ©¸³Æ®, ¾Æ¶ø ¹®ÀÚ, È÷ºê¸® ¹®ÀÚ, ÇÑÁßÀÏÀÇ ÇÑÀÚ, Çѱ¹¾îÀÇ ÇѱÛ, ÀϺ»¾îÀÇ °¡³ª, ºÏ¹Ì Àεð¾ÈÀÇ Ç¥±â ü°è µî-¸¦ ¼ö¿ëÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÇÏ°í Àֱ⠶§¹®¿¡ ±âÁ¸¿¡ ¾²ÀÌ´ø °¢ ¾ð¾î ¹× ±¹°¡ ±×¸®°í ¿î¿µ ü°è¿¡ °íÀ¯ÇÑ ¹®ÀÚ ÁýÇÕ°ú ÀÎÄÚµù¿¡ ¾µ ¼ö ÀÖ´Â ¸ðµç ±ÛÀÚ´Â ¹°·ÐÀÌ°í ±âÁ¸ ¹®ÀÚ ÁýÇÕ¿¡¼­ Áö¿øÇÏ°í ÀÖÁö ¾Ê´ø ¾ÆÁÖ ¸¹Àº ±ÛÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù.

PerlÀº ³»ºÎÀûÀ¸·Î À¯´ÏÄڵ带 ¹®ÀÚ Ç¥ÇöÀ» À§ÇØ »ç¿ëÇÕ´Ï´Ù. º¸´Ù ±¸Ã¼ÀûÀ¸·Î ¸»Çϸé Perl ½ºÅ©¸³Æ® ¾È¿¡¼­ UTF-8 ¹®ÀÚ¿­À» ¾µ ¼ö ÀÖ°í, °¢Á¾ ÇÔ¼ö¿Í ¿¬»êÀÚ(¿¹¸¦ µé¾î, Á¤±Ô½Ä, index, substr)°¡ ¹ÙÀÌÆ® ´ÜÀ§ ´ë½Å À¯´ÏÄÚµå ±ÛÀÚ ´ÜÀ§·Î µ¿ÀÛÇÕ´Ï´Ù. (´õ ÀÚ¼¼ÇÑ °ÍÀº perlunicode ¸Å´º¾óÀ» Âü°íÇϽʽÿÀ.)

À¯´ÏÄڵ尡 ³Î¸® º¸±ÞµÇ±â Àü¿¡ ³Î¸® ¾²ÀÌ°í ÀÖ¾ú°í, ¿©ÀüÈ÷ ³Î¸® ¾²ÀÌ°í ÀÖ´Â °¢±¹/°¢ ¾ð¾îº° ÀÎÄÚµùÀ¸·Î ÀÔÃâ·ÂÀ» ÇÏ°í À̵é ÀÎÄÚµùÀ¸·Î µÈ µ¥ÀÌÅÍ¿Í ¹®¼­¸¦ ´Ù·ç´Â °ÍÀ» µ½±â À§ÇØ ¡¯Encode¡¯°¡ ¾²¿´½À´Ï´Ù. ¹«¾ùº¸´Ù ¡¯Encode¡¯¸¦ ½á¼­ ¼ö¸¹Àº ÀÎÄÚµù »çÀÌÀÇ º¯È¯À» ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¡¯Encode¡¯´Â ´ÙÀ½°ú °°Àº Çѱ¹¾î ÀÎÄÚµùÀ» Áö¿øÇÕ´Ï´Ù.

euc-kr  

US-ASCII¿Í KS X 1001À» °°ÀÌ ¾²´Â ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù (ÈçÈ÷ ¿Ï¼ºÇüÀ̶ó°í ºÒ¸².) KS X 2901°ú RFC 1557 Âü°í.
 
cp949  

MS-Windows 9x/ME¿¡¼­ ¾²ÀÌ´Â È®Àå ¿Ï¼ºÇü.  euc-kr¿¡ 8,822ÀÚÀÇ ÇÑ±Û À½ÀýÀ» ´õÇÑ °ÍÀÓ.  alias´Â uhc, windows-949, x-windows-949, ks_c_5601-1987. ¸Ç ¸¶Áö¸· À̸§Àº ÀûÀýÇÏÁö ¾ÊÀº À̸§ÀÌÁö¸¸, Microsoft Á¦Ç°¿¡¼­ CP949ÀÇ Àǹ̷Π¾²ÀÌ°í ÀÖÀ½.
 
johab  

KS X 1001:1998 ºÎ·Ï 3¿¡¼­ ±ÔÁ¤ÇÑ Á¶ÇÕÇü.  ¹®ÀÚ ·¹ÆÛÅ丮´Â cp949¿Í ¸¶Âù°¡Áö·Î US-ASCII¿Í  KS X 1001¿¡ 8,822ÀÚÀÇ ÇÑ±Û À½ÀýÀ» ´õÇÑ °ÍÀÓ. ÀÎÄÚµù ¹æ½ÄÀº ÀüÇô ´Ù¸§.
 
iso-2022-kr  

RFC 1557¿¡¼­ ±ÔÁ¤ÇÑ Çѱ¹¾î ÀÎÅÍ³Ý ¸ÞÀÏ ±³È¯¿ë ÀÎÄÚµùÀ¸·Î US-ASCII¿Í KS X 1001À» ·¹ÆÛÅ丮·Î ÇÏ´Â Á¡¿¡¼­ euc-kr°ú °°Áö¸¸ ÀÎÄÚµù ¹æ½ÄÀÌ ´Ù¸§. 1997-8³â °æ±îÁö ¾²¿´À¸³ª ´õ ÀÌ»ó ¸ÞÀÏ ±³È¯¿¡ ¾²ÀÌÁö ¾ÊÀ½.

ksc5601-raw  

KS X 1001(KS C 5601)À» GL(Áï, MSB¸¦ 0À¸·Î ÇÑ °æ¿ì) ¿¡ ³õ¾ÒÀ» ¶§ÀÇ ÀÎÄÚµù. US-ASCII¿Í °áÇÕÇÏÁö ¾Ê°í ´Üµ¶À¸·Î ¾²ÀÌ´Â ÀÏÀº X11 µî¿¡¼­ ±Û²Ã ÀÎÄÚµù (ksc5601.1987-0. ¡¯0¡¯Àº GLÀ» ÀǹÌÇÔ.)À¸·Î ¾²ÀÌ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â °ÅÀÇ ¾øÀ½. KS C 5601Àº 1997³â KS X 1001·Î À̸§À» ¹Ù²Ù¾úÀ½.  1998³â¿¡´Â µÎ ±ÛÀÚ (À¯·ÎÈ­ ºÎÈ£¿Í µî·Ï »óÇ¥ ºÎÈ£)°¡ ´õÇØÁ³À½.


¸î °¡Áö »ç¿ë ¿¹Á¦¸¦ ¾Æ·¡¿¡ º¸ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, euc-kr ÀÎÄÚµùÀ¸·Î µÈ ÆÄÀÏÀ» UTF-8·Î º¯È¯ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.

    perl -Mencoding=euc-kr,STDOUT,utf8 -pe1  < file.euckr > file.utf8

¿ªº¯È¯Àº ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

    perl -Mencoding=utf8,STDOUT,euc-kr -pe1  < file.utf8  > file.euckr

ÀÌ·± º¯È¯À» Á»´õ Æí¸®ÇÏ°Ô ÇÒ ¼ö ÀÖµµ·Ï Encode ¸ðµâÀ» ½á¼­ ¼ø¼öÇÏ°Ô Perl·Î¸¸ ¾²ÀÎ piconv°¡ Perl¿¡ µé¾î ÀÖ½À´Ï´Ù. ±× À̸§¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ piconv´Â Unix¿¡ ÀÖ´Â iconv¸¦ ¸ðµ¨·Î ÇÑ °ÍÀÔ´Ï´Ù. ±× »ç¿ë¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù.

   piconv -f euc-kr -t utf8 < file.euckr > file.utf8
   piconv -f utf8 -t euc-kr < file.utf8 > file.euckr

¶Ç, ¡¯PerlIO::encoding¡¯ ¸ðµâÀ» ½á¼­ Çѱ¹¾î ÀÎÄÚµùÀ» ¾²¸é¼­ ±ÛÀÚ ´ÜÀ§
(¹ÙÀÌÆ® ´ÜÀ§°¡ ¾Æ´Ï¶ó) 󸮸¦ ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.

  #!/path/to/perl

  use encoding ¡¯euc-kr¡¯, STDIN => ¡¯euc-kr¡¯,
                         STDOUT-> ¡¯euc-kr¡¯, STDERR=>¡¯euc-kr¡¯;

  print length("°¡³ª");        # 2  (Å« µû¿ÈÇ¥´Â ±ÛÀÚ ´ÜÀ§ 󸮸¦ Áö½Ã)
  print length(¡¯°¡³ª¡¯);        # 4  (ÀÛÀº µû¿ÈÇ¥´Â ¹ÙÀÌÆ® ´ÜÀ§ 󸮸¦ Áö½Ã)
  print index("ÇÑ°­, ´ëµ¿°­", "¿°");   # -1 (¡¯¿°¡¯ÀÌ ¾øÀ½)
  print index(¡¯ÇÑ°­, ´ëµ¿°­¡¯, ¡¯¿°¡¯);   # 7 (8¹ø°¿Í 9¹ø° ¹ÙÀÌÆ®°¡ ¡¯¿°¡¯ÀÇ Äڵ尪°ú ÀÏÄ¡ÇÔ.)

´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸¸é...

PerlÀ» ¼³Ä¡ÇÏ¸é  ´ë´ÜÈ÷ ÀÚ¼¼ÇÑ ¹®¼­°¡ °°ÀÌ µû¶ó ¿À¸ç, ÀÌ ¹®¼­¸¦ ÅëÇØ Perl Àü¹Ý »Ó ¾Æ´Ï¶ó À¯´ÏÄÚµå Áö¿ø, EncodeÀÇ »ç¿ë¹ý µî¿¡ ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ½À´Ï´Ù.  ¾ÆÁ÷ ÀÌ ¹®¼­´Â ÇöÀç ¸ðµÎ ¿µ¾î·Î ¾²¿© ÀÖ½À´Ï´Ù.

À¯´ÏÄÚµå ¹× Çѱ¹¾î ÀÎÄÚµù °ü·Ã ÀÚ·á

<http://www.unicode.org/> À¯´ÏÄÚµå ÄÁ¼Ò½Ã¾ö.
 
<http://std.dkuug.dk/JTC1/SC2/WG2>  ±âº»ÀûÀ¸·Î Unicode¿Í °°Àº ISO Ç¥ÁØÀÎ ISO/IEC 10646 UCS(Universal Character Set)À» ¸¸µå´Â ISO/IEC JTC1/SC2/WG2ÀÇ À¥ ÆäÀÌÁö.  

<http://jshin.net/faq/qa8.html>  Çѱ¹¾î ¹®ÀÚ ÁýÇÕ ¹× ÀÎÄÚµù¿¡ ´ëÇÑ ¾È³».
 
<http://www.cl.cam.ac.uk/~mgk25/unicode.html> À¯´Ð½º/¸®´ª½º¿¡¼­ À¯´ÏÄÚµå¿Í UTF-8 »ç¿ë¿¡ ´ëÇÑ ¹®´äÁý(FAQ)
 
<http://kldp.org/Translations/html/UTF8-Unicode-KLDP/UTF8-Unicode-KLDP.html>  À¯´Ð½º/¸®´ª½º¿¡¼­ À¯´ÏÄÚµå¿Í UTF-8 »ç¿ë¿¡ ´ëÇÑ ¹®´äÁý(FAQ)ÀÇ  Çѱ¹¾î ¹ø¿ª

SEE ALSO : Encode, Encode::KR, encoding, perluniintro, perlunicode
AUTHORS : Jarkko Hietaniemi <jhi@iki.fi> ½ÅÁ¤½Ä <jshin@mailaps.org>

°Ô½Ã¹°: 113 °Ç, ÇöÀç: 1 / 1 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
116  [make] DUMPON eval ifeq JMJS 24.9.12 54
115  [make] .PHONY JMJS 24.3.28 97
114  [make] -n -d -r --debug=b JMJS 24.3.28 104
113  magick convert -rotate -append JMJS 23.10.12 130
112  dirname JMJS 23.3.20 187
111  zip a.zip -r ./a JMJS 23.2.1 215
110  ffmpeg AlwaysMovie JMJS 22.12.6 219
109  7za a abc.zip abc -> tar -c -z -f abc.zip abc JMJS 22.11.30 216
108  convert mogrify JMJS 23.2.1 304
107  [sh]array JMJS 19.8.14 356
106  arithmetic in a makefile, shell pwd export JMJS 17.9.8 4409
105  Split and merge large files JMJS 16.3.21 1015
104  [Makefile]random JMJS 14.12.5 1395
100  À©µµ¿ì7 ¿ë·®ºÎÁ· winsxs Æú´õ ÃÖÀûÈ­ JMJS 14.10.14 2327
99  [sh,csh]while loop JMJS 13.2.6 2365
98  hostname, hostid, /sbin/ifconfig eth0 JMJS 13.1.4 4390
97  [linux]fedora 16 gome-shell extension JMJS 12.3.12 2069
96  [linux]fedora 16 grub boot order change JMJS 12.3.10 2307
95  [linux]fedora Input Method,ibus,hangul JMJS 12.3.8 1993
94  [linux]audio,mp3,mplayer,gstreamer,vlc JMJS 12.3.7 2712
93  [sh].wrapper example JMJS 11.6.15 2319
92  [make]for loop JMJS 11.9.8 1980
91  [make]conditional expression JMJS 11.5.12 1881
90  [make]shell ½ÇÇà JMJS 11.3.9 2007
89  [wish]jplot JMJS 10.5.12 1656
88  yum JMJS 09.8.12 1689
87  [CYGWIN]X setupÇϱâ JMJS 10.8.6 3034
86  [Make]Makefile Brief JMJS 10.8.6 1719
85  ldd /user/bin/xterm JMJS 09.4.24 1400
84  [HTML]¾îµµºñ SVG ºä¾î¿Í HTML JMJS 09.4.24 1980
83  [DOS]DOS command JMJS 09.7.20 1664
82  [DOS]DOS command brief JMJS 07.2.21 2138
81  À¥ÆäÀÌÁö ¼Ò½ºº¸±â JMJS 09.4.24 1659
80  [html]ÀÚµ¿À¸·Î ±ÛÀÚ»ö ¹Ù²ñ JMJS 07.1.10 1595
79  [html]º¹»ç, µå·¡±× ±ÝÁö JMJS 07.1.10 2098
78  [csh]cshell¿¡¼­ function ¸ø¾´´Ù³×¿ä JMJS 11.3.17 1645
77  ¸®´ª½º¿¡¼­ i386,i586,i686, x86ÀÇ Â÷ÀÌÁ¡ JMJS 06.10.16 1906
76  [CSH]$status JMJS 06.8.21 1366
75  [sh]substr, read, until,IFS,for,dirname JMJS 14.12.19 1571
74  [sh]rgbview.sh . hello.sh JMJS 10.11.30 1495
73  automount - /etc/fstab JMJS 06.2.23 1502
72  lmutil.csh JMJS 05.11.8 1831
71  È­ÀÏÀ̸§¿¡ ¸ø¿À´Â ¹®ÀÚ JMJS 05.9.8 1627
70  /usr/ucb /usr/ccs JMJS 05.9.5 1491
69  Solaris Version JMJS 05.9.5 1710
68  /usr/ccs/bin/nm -x debpli.so JMJS 05.8.31 1978
67  tar, gzip, zcat, uncompress, mn(.a ÆÄÀϺ¸±â) JMJS 13.1.6 1831
66  find . -name -print -exec perl JMJS 09.4.17 1807
65  pkgadd -d packagefile JMJS 05.5.9 1526
64  prstat JMJS 08.10.2 1790
63  vi ¸í·É¾î, vim¸í·É¾î gvim JMJS 24.4.28 4949
62  grep -Rs µî multiple directory ¿¡¼­ grep ? JMJS 24.12.19 1971
61  [csh].cshrc_axis JMJS 04.5.14 1809
60  [csh].cshrc_modelsim JMJS 04.5.14 1939
59  [csh].cshrc_cadence JMJS 04.5.14 1970
58  [csh].cshrc_novas JMJS 04.5.14 1870
57  [csh].cshrc_verisity JMJS 04.5.14 2238
56  lmgrd JMJS 09.6.22 2554
55  [csh]which case JMJS 04.5.14 1820
54  [bash]example 2 JMJS 04.5.12 2050
53  [bash]example 1 JMJS 04.5.12 1922
52  fedora 12¿¡¼­ touchpad disable JMJS 11.1.17 1996
51  [Perl]Çѱ¹¾î ÀÎÄÚµù JMJS 04.1.16 2829
50  [Perl]HTML¿¡¼­ ±âÈ£ Ç¥½Ã¸¦ À§ÇÑ ¹®ÀÚġȯ JMJS 04.1.5 11017
49  [csh]make awk JMJS 03.6.6 2202
48  [csh]wordsplit JMJS 03.6.6 1845
47  [csh]vi2 JMJS 03.6.6 1687
46  [csh]cat.csh JMJS 03.6.6 1743
45  [csh]chgword.csh JMJS 03.6.6 1689
44  [bash]password JMJS 11.3.9 1587
43  [Tcl]bi2int JMJS 02.11.29 1603
42  [PC]ask °Ë»öâÀÌ ÀÚ²Ù ¶á´Ù¸é JMJS 09.4.24 2116
41  [csh]backup_copyc.csh; foreach; continue JMJS 09.4.24 1777
40  uname, uname -s -r, uname -p, uname -a JMJS 09.4.24 1975
39  [tk]»õ â ¿­°í ´Ý±â ¿¹Á¦ JMJS 09.4.24 11585
38  [sh]if [[ "$abc" == "abc" && "$bbc" == "bbc" ]]; ... JMJS 11.3.17 1703
37  [expect]expect_scp.exp JMJS 11.3.9 1759
36  ssh -x -l soc lion scp -r ... JMJS 11.3.9 1566
35  TclTk ¹è¿­ JMJS 09.7.20 1642
34  ./configure make make install JMJS 11.1.13 1579
33  [csh]diff JMJS 10.7.14 1625
32  tr abc 123 < file1 > file2 JMJS 11.4.11 1572
31  Installing RPMforge JMJS 10.2.8 1661
30  [ű×]±ÛÀÚ»öÀÌ »ç¶óÁü JMJS 09.4.24 1727
29  [ű×]ÀÚµ¿À¸·Î ±ÛÀÚ»öÀÌ º¯ÇÔ JMJS 09.4.24 1711
28  ±ÛÀÚÅÂ±× ¸ðÀ½ JMJS 09.4.24 1863
27  »ö»ó¸í°ú RGB°ª Ç¥ JMJS 09.4.24 1875
26  RGB »ö»óÇ¥ JMJS 09.4.24 2030
25  ÇѱÛƯ¼ö¹®ÀÚÇ¥ JMJS 09.4.24 1937
24  bc -l JMJS 01.5.22 1620
23  file *,  od -xc *, cat * JMJS 01.3.28 1937
22  Linux Memo JMJS 09.7.20 1792
21  xterm -fn 10x20 & JMJS 12.3.7 1610
20  W/S Tip JMJS 09.4.29 1700
19  [awk]example JMJS 10.10.30 1933
18  [csh].cshrc JMJS 11.6.21 2396
17  stop & background job JMJS 00.11.14 1594
16  W/S shout down JMJS 00.11.14 1559
15  [sed]example JMJS 16.9.5 1958
14  [DOS]Memo JMJS 00.10.29 1685
13  [csh]¸®½ºÆ®¸¦ ¸¸µé¾î foreach·Î ó¸®ÇÒ¶§ JMJS 00.10.7 5418
12  [Tcl]Tool Command Language JMJS 09.7.24 3093
11  [csh]vi.csh JMJS 00.6.27 1703
10  [csh]Check Process JMJS 00.6.27 1636
9  [csh]Get Character and get char without 'return' JMJS 10.2.8 1765
8  [csh]foreach SED JMJS 00.6.27 2078
7  [Window]¿À·ùº¸°í ¾È ¶ß°ÔÇÏ´Â ¹æ¹ý JMJS 09.9.23 1646
6  [csh]echo.csh JMJS 00.6.27 1831
5  set DDD = `date '+%y%m'` JMJS 00.6.27 1548
4  [SH]Advanced Bash-Scripting Guide JMJS 09.4.24 1506
3  [csh]Beep : echo ^G;sleep 1 JMJS 00.6.27 1840
2  [csh]if ($abc == $bbc) then _ else _ endif JMJS 00.6.27 2038
1  [csh]ARGV JMJS 00.6.27 2112
[1]