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>

°Ô½Ã¹°: 109 °Ç, ÇöÀç: 1 / 2 ÂÊ
¹øÈ£ Á¦       ¸ñ ÀÛ¼ºÀÚ µî·ÏÀÏ ¹æ¹®
112  dirname JMJS 23.3.20 53
111  zip a.zip -r ./a JMJS 23.2.1 74
110  ffmpeg AlwaysMovie JMJS 22.12.6 89
109  7za a abc.zip abc -> tar -c -z -f abc.zip abc JMJS 22.11.30 91
108  convert mogrify JMJS 23.2.1 172
107  [sh]array JMJS 19.8.14 231
106  arithmetic in a makefile, shell pwd export JMJS 17.9.8 4280
105  Split and merge large files JMJS 16.3.21 875
104  [Makefile]random JMJS 14.12.5 1268
100  À©µµ¿ì7 ¿ë·®ºÎÁ· winsxs Æú´õ ÃÖÀûÈ­ JMJS 14.10.14 2197
99  [sh,csh]while loop JMJS 13.2.6 2242
98  hostname, hostid, /sbin/ifconfig eth0 JMJS 13.1.4 4247
97  [linux]fedora 16 gome-shell extension JMJS 12.3.12 1929
96  [linux]fedora 16 grub boot order change JMJS 12.3.10 2177
95  [linux]fedora Input Method,ibus,hangul JMJS 12.3.8 1861
94  [linux]audio,mp3,mplayer,gstreamer,vlc JMJS 12.3.7 2582
93  [sh].wrapper example JMJS 11.6.15 2173
92  [make]for loop JMJS 11.9.8 1861
91  [make]conditional expression JMJS 11.5.12 1748
90  [make]shell ½ÇÇà JMJS 11.3.9 1886
89  [wish]jplot JMJS 10.5.12 1534
88  yum JMJS 09.8.12 1559
87  [CYGWIN]X setupÇϱâ JMJS 10.8.6 2891
86  [Make]Makefile Brief JMJS 10.8.6 1585
85  ldd /user/bin/xterm JMJS 09.4.24 1270
84  [HTML]¾îµµºñ SVG ºä¾î¿Í HTML JMJS 09.4.24 1846
83  [DOS]DOS command JMJS 09.7.20 1530
82  [DOS]DOS command brief JMJS 07.2.21 2014
81  À¥ÆäÀÌÁö ¼Ò½ºº¸±â JMJS 09.4.24 1524
80  [html]ÀÚµ¿À¸·Î ±ÛÀÚ»ö ¹Ù²ñ JMJS 07.1.10 1474
79  [html]º¹»ç, µå·¡±× ±ÝÁö JMJS 07.1.10 1962
78  [csh]cshell¿¡¼­ function ¸ø¾´´Ù³×¿ä JMJS 11.3.17 1523
77  ¸®´ª½º¿¡¼­ i386,i586,i686, x86ÀÇ Â÷ÀÌÁ¡ JMJS 06.10.16 1780
76  [CSH]$status JMJS 06.8.21 1235
75  [sh]substr, read, until,IFS,for,dirname JMJS 14.12.19 1443
74  [sh]rgbview.sh . hello.sh JMJS 10.11.30 1350
73  automount - /etc/fstab JMJS 06.2.23 1382
72  lmutil.csh JMJS 05.11.8 1703
71  È­ÀÏÀ̸§¿¡ ¸ø¿À´Â ¹®ÀÚ JMJS 05.9.8 1493
70  /usr/ucb /usr/ccs JMJS 05.9.5 1362
69  Solaris Version JMJS 05.9.5 1582
68  /usr/ccs/bin/nm -x debpli.so JMJS 05.8.31 1854
67  tar, gzip, zcat, uncompress, mn(.a ÆÄÀϺ¸±â) JMJS 13.1.6 1706
66  find . -name -print -exec perl JMJS 09.4.17 1660
65  pkgadd -d packagefile JMJS 05.5.9 1410
64  prstat JMJS 08.10.2 1651
63  vi ¸í·É¾î, vim¸í·É¾î gvim JMJS 22.11.1 4791
62  multiple directory ¿¡¼­ grep ? JMJS 04.5.31 1818
61  [csh].cshrc_axis JMJS 04.5.14 1684
60  [csh].cshrc_modelsim JMJS 04.5.14 1807
59  [csh].cshrc_cadence JMJS 04.5.14 1847
58  [csh].cshrc_novas JMJS 04.5.14 1726
57  [csh].cshrc_verisity JMJS 04.5.14 2097
56  lmgrd JMJS 09.6.22 2434
55  [csh]which case JMJS 04.5.14 1692
54  [bash]example 2 JMJS 04.5.12 1931
53  [bash]example 1 JMJS 04.5.12 1797
52  fedora 12¿¡¼­ touchpad disable JMJS 11.1.17 1877
51  [Perl]Çѱ¹¾î ÀÎÄÚµù JMJS 04.1.16 2683
50  [Perl]HTML¿¡¼­ ±âÈ£ Ç¥½Ã¸¦ À§ÇÑ ¹®ÀÚġȯ JMJS 04.1.5 10844
49  [csh]make awk JMJS 03.6.6 2076
48  [csh]wordsplit JMJS 03.6.6 1716
47  [csh]vi2 JMJS 03.6.6 1560
46  [csh]cat.csh JMJS 03.6.6 1620
45  [csh]chgword.csh JMJS 03.6.6 1564
44  [bash]password JMJS 11.3.9 1472
43  [Tcl]bi2int JMJS 02.11.29 1466
42  [PC]ask °Ë»öâÀÌ ÀÚ²Ù ¶á´Ù¸é JMJS 09.4.24 1993
41  [csh]backup_copyc.csh; foreach; continue JMJS 09.4.24 1643
40  uname, uname -s -r, uname -p, uname -a JMJS 09.4.24 1847
39  [tk]»õ â ¿­°í ´Ý±â ¿¹Á¦ JMJS 09.4.24 11442
38  [sh]if [[ "$abc" == "abc" && "$bbc" == "bbc" ]]; ... JMJS 11.3.17 1583
37  [expect]expect_scp.exp JMJS 11.3.9 1639
36  ssh -x -l soc lion scp -r ... JMJS 11.3.9 1432
35  TclTk ¹è¿­ JMJS 09.7.20 1529
34  ./configure make make install JMJS 11.1.13 1449
33  [csh]diff JMJS 10.7.14 1508
32  tr abc 123 < file1 > file2 JMJS 11.4.11 1451
31  Installing RPMforge JMJS 10.2.8 1545
30  [ű×]±ÛÀÚ»öÀÌ »ç¶óÁü JMJS 09.4.24 1595
29  [ű×]ÀÚµ¿À¸·Î ±ÛÀÚ»öÀÌ º¯ÇÔ JMJS 09.4.24 1585
28  ±ÛÀÚÅÂ±× ¸ðÀ½ JMJS 09.4.24 1741
27  »ö»ó¸í°ú RGB°ª Ç¥ JMJS 09.4.24 1747
26  RGB »ö»óÇ¥ JMJS 09.4.24 1903
25  ÇÑ±ÛÆ¯¼ö¹®ÀÚÇ¥ JMJS 09.4.24 1818
24  bc -l JMJS 01.5.22 1499
23  file *,  od -xc *, cat * JMJS 01.3.28 1806
22  Linux Memo JMJS 09.7.20 1647
21  xterm -fn 10x20 & JMJS 12.3.7 1492
20  W/S Tip JMJS 09.4.29 1574
19  [awk]example JMJS 10.10.30 1810
18  [csh].cshrc JMJS 11.6.21 2254
17  stop & background job JMJS 00.11.14 1450
16  W/S shout down JMJS 00.11.14 1445
15  [sed]example JMJS 16.9.5 1825
14  [DOS]Memo JMJS 00.10.29 1568
13  [csh]¸®½ºÆ®¸¦ ¸¸µé¾î foreach·Î ó¸®ÇÒ¶§ JMJS 00.10.7 5283
12  [Tcl]Tool Command Language JMJS 09.7.24 2954
11  [csh]vi.csh JMJS 00.6.27 1569
10  [csh]Check Process JMJS 00.6.27 1495
[1] [2]