· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/UTF8-Unicode-TRANS

You are not allowed to 'LikePages'


UTF-8 and Unicode FAQ for Unix/Linux

UTF-8 and Unicode FAQ for Unix/Linux

À¯´Ð½º/¸®´ª½º »ç¿ëÀÚ¸¦ À§ÇÑ UTF-8 ¹× À¯´ÏÄÚµå °ü·Ã FAQ

Markus Kuhn( Markus.Kuhn@cl.cam.ac.uk)

16 March 2001 ±¹ºÀ°ü ¿ª( kook@hanyang.co.kr) 2001³â 3¿ù 29ÀÏ
ÀÌ ¹®¼­´Â À¯´Ð½º ȤÀº ¸®´ª½º ȯ°æ¿¡¼­ UTF-8°ú À¯´ÏÄڵ带 »ç¿ëÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ³»¿ëÀ» ´ã°í ÀÖ½À´Ï´Ù. ¹ø¿ª »óÀÇ ½Ç¼ö ȤÀº ¿ÀŸ¸¦ ¹ß°ßÇϽŠºÐÀº ¸ÞÀÏ·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù.

1. UCS¿Í ISO 10646Àº ¹«¾ùÀΰ¡?

ISO 10646±¹Á¦ Ç¥ÁØÀº Universal Character Set(UCS)¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù. UCS´Â ¸ðµç ´Ù¸¥ Á¾·ùÀÇ ¹®Àڼ ǥÁØ(character set standards)ÀÇ »óÀ§¿¡ Á¸ÀçÇÏ´Â ¹®ÀÚ¼ÂÀÌ´Ù. ÀÌ°ÍÀº ´Ù¸¥ ¹®Àڼ°úÀÇ »óÈ£ ȣȯ¼ºÀ» º¸ÁõÇÑ´Ù. ¸¸¾à ¾î¶² ÅؽºÆ® ¹®ÀÚ¿­À» UCS·Î º¯È¯ÇÏ°í ´Ù½Ã ¿ø·¡ÀÇ ÀÎÄÚµùÀ¸·Î º¯È¯ÇÒ °æ¿ì ¾î¶² Á¤º¸µµ ¼Õ½ÇµÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

ISO 10646Àº °ø½ÄÀûÀ¸·Î 31ºñÆ® ¹®ÀÚ¼ÂÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù. ±×·¯³ª Áö±Ý±îÁö ¹®ÀÚµéÀº ÀÌ·¯ÇÑ Å« ÄÚµå °ø°£(of this huge code space)Áß¿¡¼­µµ ¿ÀÁ÷ óÀ½¿¡¼­ºÎÅÍ 65534¹ø° À§Ä¡(0x0000 ºÎÅÍ 0xFFFD±îÁö)±îÁö¿¡¸¸ À§Ä¡Çß¾ú´Ù. ÀÌ·¯ÇÑ UCSÀÇ 16ºñÆ® ¼­ºê¼ÂÀº ±âº» ´Ù±¹¾î Æò¸é (Basic Multilingual Plane : BMP) ȤÀº Æò¸é 0(Plane 0)¶ó°í ºÎ¸¥´Ù. BMP ¿µ¿ªÀÌ ¾Æ´Ñ °÷¿¡ ÀÎÄÚµùµÇ´Â ¹®ÀÚµéÀº »óÇü¹®ÀÚ¿Í °°Àº °í´ë ¹®ÀÚ¿Í Çмú ±âÈ£ µî ¼Ò¼öÀÇ Àü¹®°¡µé¸¸ÀÌ »ç¿ëÇÏ´Â °ÍÀÌ °ÅÀÇ ´ÙÀÌ´Ù. ÇöÀç °èȹÀº ¾ÕÀ¸·Î ´Ù¸¥ ¹®ÀÚµéÀÌ ´õÇØÁø´Ù°í ÇÏ´õ¶óµµ 0x000000 ºÎÅÍ 0x10FFFF±îÁöÀÇ 21ºñÆ®ÀÇ ¹é¸¸ÀÌ ³Ñ´Â ÄÚµå °ø°£ ÀÌ»óÀÌ ÇÊ¿äÇÏÁö´Â ¾ÊÀ¸¸®¶ó°í »ý°¢ÇÏ°í ÀÖ´Ù. ISO 10646-1 ±âÁØÀº 1993³â¿¡ ÃÖÃÊ·Î Á¦¾ÈµÆÀ¸¸ç, ¹®ÀÚÀÇ ±¸Á¶¿Í BMP ¿µ¿ªÀÇ ³»¿ëÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù. BMP ¿µ¿ªÀÇ ¿ÜºÎ¿¡ ÀÎÄÚµùµÇ´Â ¹®ÀÚµéÀ» Á¤ÀÇÇÏ°í ÀÖ´Â µÎ¹ø° ÆÄÆ®ÀÎ ISO 10646-2´Â Áغñ Áß¿¡ ÀÖÀ¸³ª, ±×°ÍÀÌ ¿Ï¼ºµÇ±â±îÁö´Â ¼ö³âÀÌ °É¸±Áöµµ ¸ð¸¥´Ù. ²÷ÀÓ¾øÀÌ »õ·Î¿î ¹®ÀÚµéÀÌ BMP ¿µ¿ª¿¡ Æ÷ÇԵǰí ÀÖÁö¸¸, ÇöÀç Á¸ÀçÇÏ°í ÀÖ´Â ¹®ÀÚµéÀº °áÄÚ º¯ÇÏÁö ¾ÊÀ» °ÍÀÌ¸ç ¾ÈÁ¤¼ºÀ» È®º¸ÇÏ°í ÀÖ´Ù.

UCS´Â °¢°¢ÀÇ ¹®ÀÚ¿¡ ÄÚµå ¹øÈ£ »Ó¸¸ ¾Æ´Ï¶ó °ø½Ä ¸íĪµµ ÇÒ´çÇÏ°í ÀÖ´Ù. UCS ȤÀº À¯´ÏÄÚµå °ªÀº "U+"¸¦ ¾Õ¿¡ ºÙÀÎ 16Áø¼ö·Î Ç¥½ÃÇϸç, ÀÏ·Ê·Î "¶óƾ ´ë¹®ÀÚ A"´Â U+0041·Î Ç¥½ÃµÈ´Ù. UCS ¹®ÀÚ U+0000 ºÎÅÍ U+007F´Â US-ASCII(ISO 646 IRV)¿Í µ¿ÀÏÇϸç, ³ª¾Æ°¡ U+0000 ºÎÅÍ U+00FF±îÁöÀÇ ¹üÀ§´Â ISO 8859-1(Latin-1)¿Í °°´Ù. U+E000¿¡¼­ºÎÅÍ U+F8FF±îÁöÀÇ ¹üÀ§¿Í BMP ¿µ¿ª ¿ÜºÎÀÇ °Å´ëÇÑ ¿µ¿ªÀº °³ÀÎÀûÀÎ ¿ëµµ¸¦ À§ÇØ º¸Á¸µÈ´Ù.

UCS Ç¥ÁØÀÇ ¿ÏÀüÇÑ ¸íĪÀº ´ÙÀ½°ú °°´Ù.

International Standard ISO/IEC 10646-1, Information technology --
Universal Multiple-Octet Coded Character Set (UCS) -- Part 1:
Architecture and Basic Multilingual Plane. Second edition,
International Organization for Standardization, Geneva, 2000-09-15.

ÀÌ°ÍÀº PDF ÆÄÀÏ·Î ÀúÀåµÈ CD-ROM ¼¼Æ®·Î 80 ½ºÀ§½ºÇÁ¶û( 54 À¯·ÎÈ­,  45 ¹Ì±¹´Þ·¯,  32 ¿µ±¹ÆÄ¿îµå)¿¡ ISO·ÎºÎÅÍ ¿Â¶óÀÎÀ¸·Î ÁÖ¹® ÇÒ ¼ö ÀÖ´Ù.

2. °áÇÕ ¹®ÀÚ(Combining Characters)¶õ ¹«¾ùÀΰ¡?

UCS¿¡¼­ ¸î¸î code pointµéÀº °áÇÕ ¹®ÀÚ(combining characters)¿¡ ÇÒ´çµÇ¾ú ´Ù. À̰͵éÀº ŸÀڱ⿡¼­ °ø°£À» Â÷ÁöÇÏÁö ¾Ê´Â ¾×¼¾Æ® Å°¿Í °°´Ù. °áÇÕ ¹®ÀÚ´Â ±× ÀÚ Ã¼·Î´Â ÇϳªÀÇ ¿ÏÀüÇÑ ¹®ÀÚ°¡ ¾Æ´Ï´Ù. ±×°ÍÀº ¾Õ¼­´Â ¹®ÀÚ¿¡ ´õÇÏ´Â ¾×¼¾Æ®°Å³ª ȤÀº ±¸ºÐ ¸¶Å©ÀÌ´Ù. ÀÌ·±½ÄÀ¸·Î, ¾î¶² ¹®ÀÚ¿¡ ¾î¶² ¾×¼¾Æ®¸¦ ³õ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀϹÝÀûÀÎ ¾ð¾îÀÇ Ã¶ÀÚ¹ý¿¡¼­ »ç¿ëÇÏ´Â ¹®ÀÚó·³ °¡Àå Áß¿äÇÑ ¾×¼¾Æ®¸¦ °¡Áø ¹®ÀÚµéÀº ¿¾ ¹®ÀÚ ¼ÂÀ» °¡Áø ±¸ ¹öÀü°úÀÇ È£È¯¼ºÀ» È®º¸Çϱâ À§Çؼ­ UCS¿¡¼­ ±×µé ÀڽŸ¸ÀÇ Äڵ带 °®´Â´Ù. ¹Ì¸® ¸¸µé¾îÁø ¹®ÀÚ(precomposed characters)¶ó°í ¾Ë·ÁÁø ¾×¼¾Æ®¸¦ °¡Áø ¹®ÀÚµéÀº ÀڽŸ¸ÀÇ ÄÚµå À§Ä¡¸¦ °®Áö¸¸, ¶ÇÇÑ °áÇÕ ¹®ÀÚ¿¡ µÚµû¸£´Â ÇѽÖÀÇ ´Ù¸¥ ¹®ÀÚ·Î½á ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ¹Ì¸® ¸¸µé¾îÁø ¹®ÀÚµéÀº ¾î¶°ÇÑ °áÇÕ ¹®ÀÚµµ °®Áö ¾Ê´Â ISO 8859¿Í °°Àº ¿¾ ¹æ½ÄÀÇ ÀÎÄÚµù°úÀÇ È£È¯¼ºÀ» À§Çؼ­ UCS¿¡¼­ »ç¿ë °¡´ÉÇÏ´Ù. °áÇÕ¹®ÀÚÀÇ ¸ÞÄ«´ÏÁòÀº ¾î¶² ¹®ÀÚ¿¡ ¾×¼¾Æ®³ª ´Ù¸¥ ±¸ºÐ ±âÈ£¸¦ ºÙÀÌ´Â °ÍÀ» Çã¶ôÇϴµ¥, ÀÌ °ÍÀº ƯÈ÷ ±âº» ¹®ÀÚ¿Í ÇÑ°¡Áö ȤÀº ¸î°¡ÁöÀÇ ±¸ºÐ ±âÈ£¿ÍÀÇ °áÇÕÀÌ ÇÊ¿äÇÑ ¼öÇÐ ¹æÁ¤ ½Ä°ú ±¹Á¦ Ç¥À½ ¾ËÆĺª°ú °°Àº °úÇРǥ±â¹ýÀ» À§Çؼ­ Áß¿äÇÏ´Ù.

°áÇÕ¹®ÀÚ´Â ±×µéÀÌ ¼öÁ¤ÇÏ´Â ¹®ÀÚ¸¦ µû¸¥´Ù. ¿¹¸¦ µé¸é, µ¶ÀÏ umlaut ¹®ÀÚ Ä´Â ¹Ì¸® ¸¸µé¾îÁø UCS ÄÚµå U+00C4·Î ³ªÅ¸³»°Å³ª ´ë¾ÈÀûÀ¸·Î "°áÇÕ ºÎÀ½ ºÎÈ£"(combin ing diaeresis)ÀÇ µÚ¸¦ ÀÕ´Â ÀϹÝÀûÀÎ "¶óƾ ´ë¹®ÀÚ A"ÀÇ °áÇÕÀ¸·Î ³ªÅ¸³¾ ¼ö Àִµ¥, U+0041 U+0308¿Í °°´Ù. ¸î¸îÀÇ °áÇÕ ¹®ÀÚ´Â ´Ù¼öÀÇ ¾×¼¾Æ®¸¦ À§¿¡ ³õ°Å³ª ±âº» ¹®ÀÚÀÇ À§¾Æ·¡ ¸ðµÎ¿¡ °áÇÕ ¸¶Å©¸¦ ´õ ÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¶§ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ŸÀÌ ¹®ÀÚ¸¦ ¿¹ ·Î µé¸é, ÇϳªÀÇ ±âº» ¹®ÀÚ À§¿¡ °áÇÕ ¹®ÀÚ°¡ ÃÖ´ë 2°³±îÁö ÇÊ¿äÇÏ´Ù.

3. UCS ±¸Çö ·¹º§(UCS implementation levels)Àº ¹«¾ùÀΰ¡?

¸ðµç ½Ã½ºÅÛµéÀÌ °áÇÕ ¹®ÀÚ¿Í °°Àº UCSÀÇ ¸ðµç Áøº¸µÈ ¸ÞÄ«´ÏÁòÀ» Áö¿øÇϸ®¶ó°í ±â ´ëÇÒ ¼ö ¾ø´Ù. ±×·¯¹Ç·Î, ISO 10646Àº ´ÙÀ½ÀÇ ¼¼°¡Áö ±¸Çö ·¹º§À» ¸í½ÃÇÏ°í ÀÖ´Ù.

  • ·¹º§ 1 : °áÇÕ ¹®ÀÚ¿Í ÇÑ±Û ÀÚ¸ð(µÎ°³ ȤÀº ¼¼°³ÀÇ ÀÛÀº ¹®ÀÚµé·Î ÇÑ±Û À½ÀýÀ» ÀÌ·ç´Â Ưº°ÇÏ¸ç ´õ¿í º¹ÀâÇÑ Çѱ¹ Ç¥À½ ¹®ÀÚÀÇ ÀÎÄÚµù)´Â Áö¿øÇÏÁö ¾Ê´Â´Ù.
  • ·¹º§ 2 : ·¹º§ 1°ú °ÅÀÇ °°À¸³ª ¸î¸î ¼­Ã¼(script)¿¡ À־ °áÇÕ¹®ÀÚÀÇ °íÁ¤µÈ ¸ñ·Ï(fixed list)À» Çã¿ëÇÑ´Ù(¿¹¸¦ µé¸é, À¯Å¾î, ¾Æ¶ø¾î, Àεµ¾î, ¹æ±Û¶óµ¥½Ã¾î, ³×ÆȾî, Àεµ-¾Æ¸®¾È¾î, ¿À¸®»ç-Àεµ¾î, Ÿ¹Ð¾î, ¾Èµå¶ó¾î, Ä«¸£³ªÅ¸Ä«¾î, ¸»·¹ÀÌ½Ã¾Æ ¾î, ű¹¾î ¹× ¶ó¿À½º¾î°¡ ÀÖ´Ù). ÀÌ·¯ÇÑ ¹®ÀÚµéÀº ÃÖ¼ÒÇÑÀÇ °áÇÕ ¹®ÀÚµéÀ» À§ÇÑ Áö¿ø ¾øÀÌ´Â UCS¿¡¼­ ÀûÀýÇÏ°Ô ³ªÅ¸³¾ ¼ö ¾ø´Ù.
  • ·¹º§ 3 : ¸ðµç UCS ¹®ÀÚµéÀ» Áö¿øÇÑ´Ù. ¿¹¸¦ µé¸é ¼öÇÐÀÚµéÀº ¾î¶² ¼öÇÐ ¹®ÀÚ»óÀÇ Æ¿µ¥³ª È­»ìÇ¥(ȤÀº ¾çÂÊ´Ù)¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù.

4. UCS´Â ±¹Á¦ ±âÁØÀ¸·Î äÅõǾú´Â°¡?

´ë´äÀº ¿¹ÀÌ´Ù. ¼ö¸¹Àº ±¹°¡µéÀÌ 1993³â¿¡ ISO 10646-1:1993À» ±¹°¡ÀûÀ¸·Î äÅÃÇÒ °ÍÀ» °øÇ¥ÇßÀ¸¸ç ¶§·Î´Â ¿¹Àü¿¡ ±¹°¡¿¡¼­ ±¸ÇöÇÑ ¿©·¯°¡Áö »çÇ×°ú ±âÁØ¿¡ ´ëÇÑ »óÈ£ Âü°í Á¶Ç׿¡ ºÎ°¡ÀûÀÎ Á¶Ç×À» ºÙÀÎ ÈÄ¿¡ °øÇ¥Çß´Ù.

  • Áß±¹: GB 13000.1-93
  • ÀϺ»: JIS X 0221-1995
  • Çѱ¹: KS X 1005-1:1995 (ISO 10646-1:1993ÀÇ ¼öÁ¤¾È 1-7À» Æ÷ÇÔ)

5. À¯´ÏÄÚµå¶õ ¹«¾ùÀΰ¡?

¿ª»çÀûÀ¸·Î, ´ÜÀÏ ÅëÇÕ½ÃŲ ¹®ÀÚ¼ÂÀ» ¸¸µé·Á´Â µÎ°³ÀÇ µ¶¸³ÀûÀÎ ½Ãµµ°¡ ÀÖ¾ú´Ù. ÇÏ ³ª´Â ±¹Á¦ Ç¥ÁØ ±â±¸(ISO)ÀÇ ISO 10646 ÇÁ·ÎÁ§Æ®¿´À¸¸ç, ´Ù¸¥ Çϳª´Â ´ÙÁß ¾ð¾î ¼ÒÇÁÆ®¿þ¾î Á¦Á¶»çµéÀÇ(Ãʱ⿡´Â ¹Ì±¹È¸»ç°¡ ´ëºÎºÐÀ̾ú ´ø) ÄÁ¼Ò½Ã¿òÀ¸·Î ±¸¼ºµÈ À¯´ÏÄÚµå ÇÁ·ÎÁ§Æ®¿´´Ù. ¿î ÁÁ°Ôµµ, µÎ ÇÁ·ÎÁ§Æ®¿¡ Âü¿©Çß´ø Âü°¡È¸»çµé ¸ðµÎ 1991³â°æ¿¡ µÎ°³ÀÇ ¼­·Î ´Ù¸¥ ÅëÇÕ ¹®ÀÚ¼ÂÀº ¼¼°è°¡ ¿øÇÏ´Â ¹Ù°¡ ¾Æ´Ï¶ó´Â °ÍÀ» ±ú´Þ¾Ò´Ù. ±×µéÀº ÇÔ²² ³ë·ÂÇßÀ¸¸ç ´ÜÀÏÇÑ ÄÚµå Å×À̺íÀ» ¸¸µé±â À§ÇØ ÇÔ²² ÀÛ¾÷Çß´Ù. ¾ç ÇÁ·ÎÁ§Æ® ¸ðµÎ ¿©ÀüÈ÷ Á¸ÀçÇÏ¸ç ±×µé °¢ÀÚÀÇ ±âÁØÀ» µ¶¸³ÀûÀ¸·Î °øÇ¥ÇÑ´Ù. ±×·¯³ª À¯´ÏÄÚµå ÄÁ¼Ò½Ã¿ò°ú ISO/IEC JTC1/SC2´Â ȣȯ°¡´ÉÇÑ À¯´ÏÄÚµå¿Í ISO 10646 ±âÁØÀÇ ÄÚµå Å×À̺íÀ» À¯ÁöÇϱâ·Î ÇÕÀÇÇß´Ù. ±×¸®°í ±×µéÀº ´õ¿í ¹ßÀüÀûÀÎ È®Àå ±â´ÉÀ» À§ÇØ ¸é¹ÐÈ÷ Çù·ÂÇÏ°í ÀÖ´Ù. À¯´ÏÄÚµå 1.1Àº °ú°Å ISO 10646-1:1993¿¡ ´ëÀÀÇß°í, À¯´ÏÄÚµå 3.0Àº ÇöÀç ISO 10646-1:2000¿¡ ´ëÀÀÇÑ´Ù.

À¯´ÏÄÚµå Ç¥ÁØÀº ¸î¸î ÀϹÝÀûÀΠåó·³ amazon.comÀ¸·ÎºÎÅÍ ¾à 50 ´Þ·¯¿¡ ÁÖ¹®ÇÒ ¼ö ÀÖ´Ù.

The Unicode Consortium: The Unicode Standard, Version 3.0, Reading, MA, Addison-Wesley Developers Press, 2000, ISBN 0-201-61633-5.

ÅؽºÆ® ÇÁ·Î¼¼½Ì°ú ¹®ÀÚ¼ÂÀ» °¡Áö°í ÀÚÁÖ ÀÛ¾÷À» ÇÑ´Ù¸é, ¿©·¯ºÐµéÀº ¹Ýµå½Ã ÇÑ Ä« ÇǸ¦ ±¸ÀÔÇؾ߸¸ ÇÑ´Ù.

6. À¯´ÏÄÚµå¿Í ISO 10646 »çÀÌÀÇ Â÷ÀÌÁ¡Àº ¹«¾ùÀΰ¡?

À¯´ÏÄÚµå ÄÁ¼Ò½Ã¿òÀÌ °øÇ¥ÇÑ À¯´ÏÄÚµå Ç¥ÁØÀº ½ÇÁ¦·Î ±¸Çö ·¹º§ 3¿¡¼­ ±âº» ´Ù±¹¾î Æò¸é(BMP)À» Æ÷ÇÔÇÑ´Ù. µÎ Ç¥ÁØ °øÈ÷ ¸ðµç ¹®ÀÚµéÀº °°Àº À§Ä¡¸¦ °¡Áö¸ç °°Àº ¸íĪÀ» »ç¿ëÇÑ´Ù.

À¯´ÏÄÚµå Ç¥ÁØÀº ºÎ°¡ÀûÀ¸·Î ¸î¸î ¹®ÀÚ¿Í °ü·ÃµÈ ÈξÀ ¸¹Àº ¾ð¾î ü°è¸¦ Á¤ÀÇÇÏ°í ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î ¾çÁúÀÇ Àμâ ÃâÆÇ ½Ã½ºÅÛ ±¸ÇöÀ» À§ÇÑ ´õ ³ªÀº Âü°í ÀÚ·á°¡ µÈ´Ù. À¯´ÏÄÚµå´Â ¿¹¸¦ µé¾î ¶óƾ¾î¿Í À¯Å¾ È¥ÇÕÇÏ´Â ¾ç ¹æÇâ ÅؽºÆ®¸¦ Ãë±ÞÇϹǷνá, ¸î¸î ¾ð¾îÀÇ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀ» ·»´õ¸µÇϱâ À§ÇÑ ¾Ë°í¸®Áò°ú ¹®ÀÚ¿­ ºñ±³¸¦ À§ÇÑ ¾Ë °í¸®Áò ¹× ±× ¿Ü ¸¹Àº °ÍÀ» ¸í½ÃÇÏ°í ÀÖ´Ù.

´Ù¸¥ ÇÑÆí ISO 10646 Ç¥ÁØÀº Àß ¾Ë·ÁÁø ISO 8859 Ç¥ÁØ°ú ºñ±³ÇßÀ» ¶§ °£´ÜÇÑ ¹®Àڼ Å×ÀÌºí ±× ÀÌ»óÀº ¾Æ´Ï´Ù. ÀÌ°ÍÀº Ç¥ÁØ°ú °ü·ÃµÈ ¸î¸î ±â¼úµéÀ» ¸í½ÃÇÏ°í, ¸î¸î ÀÎ ÄÚµù ´ë¾ÈµéÀ» Á¤ÀÇÇϸç, ISO 6429¿Í ISO 2022¿Í °°Àº ´Ù¸¥ ISO Ç¥ÁØ°ú °ü·ÃµÈ UCS¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ¼¼ºÎ »çÇ×À» Æ÷ÇÔÇÑ´Ù. ISO Ç¥ÁØ°ú ¹ÐÁ¢ÇÏ°Ô °ü·ÃµÈ ´Ù¸¥ °Íµé µµ ÀÖ´Ù. ¿¹¸¦ µé¸é, UCS ¹®ÀÚ¿­ÀÇ Á¤·Ä¿¡ °üÇÑ ISO 14651ÀÌ ÀÖ´Ù. ISO 10646-1 Ç¥ÁØÀÇ ÈǸ¢ÇÑ Æ¯Â¡À¸·Î´Â ±×°ÍÀÌ ´Ù¼¸°¡Áö ´Ù¸¥ ½ºÅ¸ÀÏ·Î º¯Çü½ÃÄÑ ÇÑÁßÀÏ ±¹°¡ÀÇ glyph ¿¹¸¦ Á¦°øÇÑ´Ù´Â °ÍÀÌ´Ù. ¹Ý¸é À¯´ÏÄÚµå Ç¥ÁØÀº ÇÑÁßÀÏ ±¹°¡ÀÇ ÇÑÀÚ¸¦ ´ÜÁö Áß±¹ ½ÄÀ¸ ·Î¸¸ º¸¿©ÁØ´Ù.

7. UTF-8Àº ¹«¾ùÀΰ¡?

¹«¾ùº¸´Ù ¸ÕÀú UCS¿Í À¯´ÏÄÚµå´Â ´ÜÁö Á¤¼ö¸¦ ¹®ÀÚ¿¡ ÇÒ´çÇÏ´Â ÄÚµå Å×À̺íÀÏ »ÓÀÌ ¶ó´Â °ÍÀÌ´Ù. ±×·¯ÇÑ ¹®ÀÚ È¤Àº ¹®ÀÚ °¢°¢ÀÇ Á¤¼ö °ªÀÇ ½ÃÄö½º°¡ ¾î¶»°Ô ¹ÙÀÌÆ® ½ÃÄö½º·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â Áö¿¡ ´ëÇÑ ¸î °¡Áö ´ë¾ÈµéÀÌ Á¸ÀçÇÑ´Ù. ´ë´ÜÈ÷ ÀÌÇØÇϱ⠽¬¿î µÎ °³ÀÇ ÀÎÄÚµùÀº À¯´ÏÄÚµå ÅؽºÆ®¸¦ 2 ȤÀº 4¹ÙÀÌÆ® ½ÃÄö½ºÀÇ ½ÃÄö½º(sequences of either 2 or 4 bytes sequences) ·Î½á ÀúÀåÇÑ´Ù. ÀÌ·¯ÇÑ ¿ë¾î¿¡ °üÇÑ °ø½ÄÀûÀÎ ¸íĪÀº °¢ °¢ UCS-2¿Í UCS-4ÀÌ´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î ¸í½ÃµÇÁö ¾Ê´Â´Ù¸é, °¡Àå Áß¿äÇÑ ¹ÙÀÌÆ®°¡ À̵éÀÇ Ã¹¹ø°·Î ¿Â´Ù(Bigendian convention). ASCII ¶Ç´Â Latin-1 ÆÄÀÏÀº ¸ðµç ASCII ¹ÙÀÌÆ®ÀÇ ¾Õ¿¡ 0x00 ¹ÙÀÌÆ®¸¦ »ðÀÔÇϹǷνá, UCS-2 ÆÄÀÏ·Î º¯È¯½Ãų ¼ö ÀÖ´Ù. UCS-4 ÆÄÀÏÀ» ¿øÇÑ´Ù¸é, ¸ðµç ASCII ¹ÙÀÌÆ® ¾Õ¿¡ ±× ´ë½Å¿¡ ¼¼°³ÀÇ 0x00 ¹ÙÀÌÆ®¸¦ »ðÀÔÇؾ߸¸ ÇÑ´Ù.

À¯´Ð½º ȯ°æ¿¡¼­ UCS-2(¶Ç´Â UCS-4)¸¦ »ç¿ëÇÏ´Â °ÍÀº ¸Å¿ì ½É°¢ÇÑ ¹®Á¦Á¡À» ºÒ·¯¿Â´Ù. ÀÌ·¯ÇÑ ÀÎÄÚµùÀ» °¡Áø ¹®ÀÚ¿­µéÀº ÆÄÀϸí°ú C ¶óÀ̺귯¸® ÇÔ¼ö ÆĶó¹ÌÅÍ¿¡¼­ Ưº°ÇÑ Àǹ̸¦ °®´Â '\0' ȤÀº '/'¿Í °°ÀÌ ¸Å¿ì ±¤¹üÀ§ÇÑ ¹®ÀÚ ¹ÙÀÌÆ®¸¦ ºÎºÐÀûÀ¸·Î Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÀÌ¿¡ ´õÇØ, ´ë´Ù¼öÀÇ À¯´Ð½º ÅøµéÀº ASCII ÆÄÀÏÀ» ¿¹»óÇϸç, Å« ¼öÁ¤ÀÌ ¾øÀÌ´Â 16ºñÆ® ´Ü¾îµéÀ» ¹®ÀÚ·Î ÀÐÀ» ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯ ¶§¹®¿¡ UCS-2´Â ÆÄÀϸí°ú ÅؽºÆ® ÆÄÀÏ ¹× ȯ°æ º¯¼ö µî¿¡ ÀûÇÕÇÑ À¯´ÏÄÚµåÀÇ ¿ÜºÎ ÀÎÄÚµù(suitable external encoding of Unicode)ÀÌ ¾Æ´Ï´Ù.

ISO 10646-1 ÀÇ Annex R°ú RFC 2279»ó¿¡ Á¤ÀÇµÈ UTF-8 ÀÎÄÚµùÀº ÀÌ·¯ÇÑ ¹®Á¦Á¡µéÀÌ ¾ø´Ù. ÀÌ°ÍÀº À¯´Ð½º ½ºÅ¸ÀÏÀÇ ¿î¿µ üÁ¦ÇÏ¿¡¼­ À¯´ÏÄڵ带 »ç¿ëÇϱâ À§ÇÑ ÀǽÉÇÒ ¿©Áö¾øÀÌ ÁÁÀº ¹æ¹ýÀÌ´Ù.

UTF-8Àº ´ÙÀ½ÀÇ ¼ºÁúÀ» °®°í ÀÖ´Ù:

  • U+0000ºÎÅÍ U+007F±îÁöÀÇ UCS ¹®ÀÚµéÀº 0x00¿¡¼­ 0x7f ¹ÙÀÌÆ®±îÁö ½±°Ô ÀÎÄÚµùµÈ´Ù(ASCII¿ÍÀÇ È£È¯¼º). ÀÌ°ÍÀº ¿ÀÁ÷ 7ºñÆ®ÀÇ ASCII ¹®ÀÚµéÀ» Æ÷ÇÔÇÏ´Â ÆÄÀÏ ¹× ¹®ÀÚ¿­µéÀÌ ASCII¿Í UTF-8 ¾çÂÊ ¸ðµÎ¿¡¼­ °°Àº ÀÎÄÚµùÀ» °®´Â´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
  • U+007Fº¸´Ù Å« ¸ðµç UCS ¹®ÀÚµéÀº °¢°¢ µ¶ÀÚÀûÀÎ ¹ÙÀÌÆ®ÀÇ ½ÃÄö½º·Î½á ÀÎÄÚµùµÇ¸ç, À̰͵éÀº °¢°¢ °¡Àå Áß¿äÇÑ ºñÆ®¼Â(bit set)À» °¡Áø´Ù. ±×·¯¹Ç·Î ´Ù¸¥ ¹®ÀÚÀÇ ºÎºÐ¿¡ ¾î¶² ASCII ¹ÙÀÌÆ®(0x00-0x7f)µµ ³ªÅ¸³¯ ¼ö ¾ø´Ù.
  • ASCII°¡ ¾Æ´Ñ ¹®ÀÚ¸¦ ³ªÅ¸³»´Â ¸ÖƼ¹ÙÀÌÆ® ½ÃÄö½ºÀÇ Ã¹¹ø° ¹ÙÀÌÆ®´Â Ç×»ó 0xC0¿¡¼­ºÎÅÍ 0xFD ¹üÀ§¿¡ ÀÖÀ¸¸ç, ±×°ÍÀº ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ À§ÇØ ¾ó¸¶³ª ¸¹Àº ¹ÙÀÌÆ®°¡ ÇÊ¿äÇÑ Áö¸¦ °¡¸£Å²´Ù. ¸ÖƼ¹ÙÀÌÆ® ½ÃÄö½ºÀÇ ¸ðµç ÀÌÈÄÀÇ ¹ÙÀÌÆ®µéÀº 0x80¿¡¼­ºÎÅÍ 0xBF ¹üÀ§¿¡ ÀÖ´Ù. ÀÌ ¶§¹®¿¡ resynchronizationÀ» ½±°ÔÇÒ ¼ö ÀÖ°í ±¹°¡¿¡ ±¸¾Ö¹ÞÁö ¾Ê°í ÀÎÄÚµùÇÒ ¼ö ÀÖÀ¸¸ç ¹ÙÀÌÆ®¸¦ ÀÒ¾î¹ö¸®Áö ¾Ê°Ô µÈ´Ù.
  • °¡´ÉÇÑ ¸ðµç 231 UCS Äڵ带 ÀÎÄÚµùÇÒ ¼ö ÀÖ´Ù.
  • UTF-8·Î ÀÎÄÚµùÇÑ ¹®ÀÚµéÀº ÀÌ·ÐÀûÀ¸·Î 6¹ÙÀÌÆ® ±æÀ̱îÁö °¡´ÉÇÏÁö¸¸, 16ºñÆ® BMP ¿µ¿ª ¹®ÀÚµéÀº ¿ÀÁ÷ 3¹ÙÀÌÆ® ±æÀ̱îÁö °¡´ÉÇÏ´Ù.
  • Bigendian UCS-4 ¹ÙÀÌÆ® ¹®ÀÚ¿­ÀÇ Á¤·Ä ¼ø¼­´Â º¸Á¸µÈ´Ù.
  • 0xFE ¹× 0xFF ¹ÙÀÌÆ®´Â °áÄÚ UTF-8 ÀÎÄÚµù¿¡¼­ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

´ÙÀ½ÀÇ ¹ÙÀÌÆ® ½ÃÄö½º´Â ÇÑ ¹®ÀÚ¸¦ ³ªÅ¸³»±â À§ÇØ »ç¿ëÇÑ´Ù. »ç¿ëµÇ´Â ½ÃÄö½º´Â ±× ¹®ÀÚÀÇ À¯´ÏÄÚµå ¹øÈ£¿¡ µû¶ó ´Þ¶óÁø´Ù.


U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx



xxxºñÆ®ÀÇ À§Ä¡´Â ÀÌÁø Ç¥±â¹ý¿¡ ÀÇÇØ ¹®ÀÚ ÄÚµå ¹øÈ£ÀÇ ºñÆ®µé·Î ä¿öÁø´Ù. ¿À¸¥ÂÊÀÇ xºñÆ®´Â º°·Î Áß¿äÇÏÁö ¾Ê´Ù. ±× ¹®ÀÚÀÇ ÄÚµå ¹øÈ£¸¦ ³ªÅ¸³»´Â ¿ÀÁ÷ °¡Àå ªÀº ¸ÖƼ¹ÙÀÌÆ® ½ÃÄö½º¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ÖƼ¹ÙÀÌÆ® ½ÃÄö½º¿¡¼­ ù ¹ø° ¹ÙÀÌÆ®ÀÇ ¿ÞÂÊ 1ºñÆ®ÀÇ ¼ö´Â Àüü ½ÃÄö½º¿¡¼­ÀÇ ¹ÙÀÌÆ® ¼ö¿Í °°´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó.

¿¹: "À¯´ÏÄÚµå ¹®ÀÚ U+00A9 = 1010 1001"(ÀúÀÛ±Ç ºÎÈ£)´Â ´ÙÀ½°ú °°Àº UTF-8¿¡ µû¶ó ÀÎÄÚµùµÈ´Ù.

11000010 10101001 = 0xC2 0xA9

±×¸®°í ¹®ÀÚ U+2260 = 0010 0010 0110 0000(ÀúÀÛ±Ç ºÎÈ£)´Â ´ÙÀ½°ú °°Àº UTF-8¿¡ µû¶ó ÀÎÄÚµùµÈ´Ù.

11100010 10001001 10100000 = 0xE2 0x89 0xA0

ÀÌ·¯ÇÑ ÀÎÄÚµùÀÇ °ø½Ä ¸íĪ°ú Á¤È®ÇÑ Ç¥±â´Â UTF-8À̸ç, UTF´Â UCS Transformation FormatÀ» ÀǹÌÇÑ´Ù. utf8ȤÀº UTF_8°ú °°Àº ´Ù¸¥ ¹æ¹ýÀ¸·Î UTF-8À» ¹®¼­¿¡ ¾²Áö¸¶¶ó. ¹°·Ð ÀÎÄÚµù ÀÚü¸¦ ÂüÁ¶ÇÏÁö ¾Ê°í º¯¼ö¸í¿¡ ÂüÁ¶ÇÒ °æ¿ì¿¡´Â±¦Âú´Ù.

UTF-8ÀÇ µðÄÚµù ó¸® ¼ø¼­¿¡ À־ Áß¿äÇÑ Á¡Àº ´ÙÀ½°ú °°´Ù: º¸¾È»óÀÇ ÀÌÀ¯ ¶§¹®¿¡, UTF-8 µðÄÚ´õ´Â ÇÑ ¹®ÀÚ¸¦ ÀÎÄÚµùÇϱâ À§Çؼ­ ÇÊ¿ä ÀÌ»óÀ¸·Î ±ä UTF-8 ½ÃÄö½º¸¦ ¹Þ¾Æµé¿©¼­´Â ¾È µÈ´Ù. ¿¹¸¦ µé¾î U+000A(¶óÀÎ Çǵå) ¹®ÀÚ´Â ¿ÀÁ÷ 0x0A Çü½ÄÀ¸·Î UTF-8 ½ºÆ®¸²À¸·ÎºÎÅÍ ¹Þ¾Æµé¿©¾ß¸¸ Çϸç, ´ÙÀ½ÀÇ ´Ù¼¸°¡Áö¿Í °°ÀÌ °úµµÇÏ°Ô ±ä(overlong) Çü½ÄÀ¸·Î ¹Þ¾Æµé¿©¼­´Â ¾ÈµÈ´Ù.

  0xc0 0x8A
  0xe0 0x80 0x8A
  0xf0 0x80 0x80 0x8A
  0xf8 0x80 0x80 0x80 0x8A
  0xfc 0x80 0x80 0x80 0x80 0x8A

°¡Àå ªÀº ÀÎÄÚµùÀ» ã±â À§ÇÑ UTF-8 ¼­ºê½ºÆ®¸µ Å×½ºÆ®¸¦ ¹«½ÃÇϱ⠾ °úµµÇÏ°Ô ±ä UTF-8 ½ÃÄö½º¸¦ ³²¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµç °úµµÇÏ°Ô ±ä Çü½ÄÀÇ UTF-8 ½ÃÄö½º´Â ´ÙÀ½ÀÇ ¹ÙÀÌÆ® ÆÐÅÏ Áß ÇÑ °¡Áö·Î ½ÃÀÛÇÑ´Ù.


1100000x (10xxxxxx)
11100000 100xxxxx (10xxxxxx)
11110000 1000xxxx (10xxxxxx 10xxxxxx)
11111000 10000xxx (10xxxxxx 10xxxxxx 10xxxxxx)
11111100 100000xx (10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx)

Á¤»óÀûÀÎ UTF-8 ȤÀº UCS-4 µ¥ÀÌÅͻ󿡼­ ÄÚµå À§Ä¡ U+FFFE¿Í U+FFFF »Ó¸¸ ¾Æ´Ï¶ó ÄÚµå À§Ä¡ U+D800 ºÎÅÍ U+DFFF(UTF-16 ´ë¿ë)±îÁö´Â »ç¿ëÇؼ­´Â ¾È µÈ´Ù. UTF-8 µðÄÚ´õ´Â ÀÌ·¯ÇÑ °ÍµéÀ» ¾ÈÀü¼ºÀ» ÀÌÀ¯·Î, À߸øµÈ Çü½ÄÀ¸·Î ȤÀº ³Ê¹« ±ä ½ÃÄö½º·Î Ãë±ÞÇØ¾ß ¸¸ ÇÑ´Ù.

Markus KuhnÀÇ UTF-8 decoder stress test fileÀº À߸øµÈ Çü½ÄÀ» °®´Â °úµµÇÏ°Ô ±ä UTF-8 ½ÃÄö½ºÀÇ Ã¼°èÀûÀÎ ¸ðÀ½À» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç µðÄÚ´õÀÇ °­·ÂÇÔÀ» Áõ¸íÇØÁØ´Ù.

8. À¯´ÏÄڵ带 Áö¿øÇÏ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ¹«¾ùÀΰ¡?

1993³â°æ ÀÌÈÄ¿¡ °³¹ßµÈ ÃÖ±ÙÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº ÀÌ¹Ì À¯´ÏÄÚµå/ISO 10646-1 ¹®ÀÚµéÀ» À§ÇÑ Æ¯º°ÇÑ µ¥ÀÌÅÍ ÇüÀ» °¡Áö°í ÀÖ´Ù. ÀÌ°ÍÀº Ada95ÀÇ °æ¿ì Wide_CharacterÀ̸ç ÀÚ¹ÙÀÇ °æ¿ì CharÀÌ´Ù.

ISO C´Â ¶ÇÇÑ ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù°ú ¿ÍÀÌµå ¹®ÀÚ(wide character)¸¦ Ãë±ÞÇϱâ À§ÇÑ ¸ÞÄ¿´ÏÁòÀ» ¸í½ÃÇÏ°í ÀÖÀ¸¸ç, Amendment 1 to ISO C°¡ 1994³â 9¿ù¿¡ ¹ßÇàµÇ¾úÀ» ¶§ ´õ¿í ´õ ¸¹Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù. ÀÌ·¯ÇÑ Æí¸®ÇÑ ±â´ÉÀº ÁÖ·Î ¿©·¯°¡Áö µ¿¾Æ½Ã¾Æ ¹®ÀÚµéÀ» ÀÎÄÚµùÇϱâ À§Çؼ­ ¼³°èµÇ¾ú°í UCS¸¦ Ãë±ÞÇϱâ À§Çؼ­ ÇÊ¿äÇÑ °Íº¸´Ù ÈξÀ ´õ º¹ÀâÇØÁ³´Ù. UTF-8Àº ISO C Ç¥ÁØÀÌ ÇϳªÀÇ ¸ÖƼ¹ÙÀÌÆ® ¹®ÀÚ¿­°ú wchar_t ÇüÀ» È£ÃâÇϱâ À§ÇÑ ÇϳªÀÇ ÀÎÄÚµù ¿¹Àε¥, ÀÌ°ÍÀº ÇöÀçÀÇ È¯°æ¿¡¼­´Â º¸Åë 32ºñÆ®ÀÇ ºÎÈ£ÀÖ´Â Á¤¼öÀ̸ç, À¯´ÏÄÚµå ¹®ÀÚ¸¦ ÀúÀåÇϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. C ÄÄÆÄÀÏ·¯´Â yyyymmL ÇüŸ¦ °®´Â »ó¼ö Á¤¼ö¸¦ __STDC_ISO_10646__ º¯¼ö¿¡ ¸ÅÅ©·Î Á¤ÀÇÇϹǷνá, wchar_t º¯¼ö°¡ ¸ðµç ·ÎÄÉÀÏ¿¡ °áÄ£ À¯´ÏÄÚµå °ªÀ» ÀúÀåÇÑ´Ù´Â °ÍÀ» º¸ÁõÇÏ´Â ½ÅÈ£¸¦ ¾ÖÇø®ÄÉÀ̼ǿ¡ º¸³¾ ¼ö ÀÖ´Ù(199712LÀ» ¿¹·Î µé¾îº¸¸é, ¿¬µµ¿Í ¿ù ¼ö´Â ISO/IEC 10646°ú ±×°ÍÀÌ ¾ðÁ¦ ¸¸µé¾îÁ³°í ¾ðÁ¦ ¼öÁ¤µÇ¾ú´ÂÁö¸¦ ³ªÅ¸³»´Â ¹öÀüÀ» ÂüÁ¶ÇÑ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù).

9. ¸®´ª½º¿¡¼­ À¯´ÏÄڵ带 ¾î¶»°Ô »ç¿ëÇϴ°¡?

UTF-8ÀÌ ¹ßÇ¥µÇ±â Àü¿¡´Â ´Ù¸¥ Áö¿ª¿¡ »ì°í ÀÖ´Â ¸®´ª½º À¯ÀúµéÀº ¿©·¯°¡Áö ASCII È®Àå ¹®ÀÚ¸¦ »ç¿ëÇÏ¿´´Ù. À¯·´¿¡¼­´Â ISO 8859-1°ú ISO 8859-2¸¦, ±×¸®½º¿¡¼­´Â ISO 8859-7À», ·¯½Ã¾Æ¿¡¼­´Â KOI-8À», ÀϺ»¿¡¼­´Â EUC¿Í Shift-JIS¸¦ °¡Àå ³Î¸® »ç¿ëÇÏ¿´´Ù. ÀÌ·Î ÀÎÇÏ¿© ÆÄÀÏÀ» ±³È¯ÇÏ´Â °ÍÀÌ ¾î·Á¿ü°í, ¾îÇø®ÄÉÀÌ¼Ç ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇϱâ À§Çؼ­´Â ÀÌ·¯ÇÑ ÀÎÄÚµùµé »çÀÌÀÇ Â÷ÀÌÁ¡À» °ÆÁ¤Çؾ߸¸ Çß´Ù.

À¯´ÏÄÚµå´Â °á±¹¿¡´Â ÀÌ·¯ÇÑ ¸ðµç ÀÎÄÚµùµéÀ» ´ë½ÅÇÒ °ÍÀ̸ç, UTF-8 Çü½ÄÀÌ ÁÖ¸¦ ÀÌ·ê °ÍÀÌ´Ù. UTF-8Àº ¾Æ·¡¿Í °°Àº °æ¿ì¿¡ »ç¿ëµÉ °ÍÀÌ´Ù.

  • ÅؽºÆ® ÆÄÀÏ(¼Ò½º ÄÚµå, html ÆÄÀÏ, À̸ÞÀÏ ¸Þ½ÃÁö µî)
  • ÆÄÀϸí
  • Ç¥ÁØ ÀÔÃâ·Â, ÆÄÀÌÇÁ
  • ȯ°æ º¯¼ö
  • ¼±ÅÃÇÑ ¹öÆÛ ³»¿ëÀ» ÀÚ¸£°í ºÙÀ̱â
  • ÅÚ³Ý, ¸ðµ©, Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ¿¡ ¿¬°áÇÑ ½Ã¸®¾ó Æ÷Æ®
  • ¹ÙÀÌÆ® ½ÃÄö½º°¡ ASCII ÄÚµå·Î Çؼ®µÇ´Â °÷ÀÌ¸é ¾î¶² °÷À̵çÁö »ç¿ëµÈ´Ù.

UTF-8 ¸ðµå¿¡¼­ xtermÀ̳ª ¸®´ª½º ÄÜ¼Ö µå¶óÀ̹ö¿Í °°Àº Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ´Â ´ëÀÀÇÏ´Â UTF-8 ½ÃÄö½º·Î ¸ðµç Å°ÀÔ·ÂÀ» Àü´ÞÇϸç, Å°ÀÔ·ÂÀ» Æ÷±×¶ó¿îµå ÇÁ·Î¼¼¼­ÀÇ Ç¥ÁØ ÀÔ·ÂÀ¸·Î º¸³½´Ù. ºñ½ÁÇÑ ¹æ½ÄÀ¸·Î ÇÁ·Î¼¼¼­ÀÇ Ç¥ÁØ Ãâ·ÂÀ» Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ·Î º¸³»°í ±×°÷¿¡¼­ Ãâ·ÂÀ» UTF-8 µðÄÚ´õ·Î ó¸®ÇÏ°í 16ºñÆ® ÆùÆ®¸¦ »ç¿ëÇÏ¿© µð½ºÇ÷¹ÀÌÇÑ´Ù.

°æ°íÀ½À» °®´Â ¿ÏÀüÇÑ À¯´ÏÄÚµå ±â´ÉÀº º¹ÀâÇÑ ´ÙÁß-¾ð¾î ¿öµå-ÇÁ·Î¼¼½Ì ÆÐÅ°Áö¿¡ »ç¿ëÇÒ °ÍÀ¸·Î ¿¹»óÇÒ ¼ö ÀÖ´Ù. ¸®´ª½º´Â Ʋ¸²¾øÀÌ ASCII ¹®ÀÚ¸¦ ´ë½ÅÇϱâ À§ÇÑ Æø ³ÐÀº ±â¹Ý À§¿¡¼­ »ç¿ëµÉ °ÍÀ̸ç, ´Ù¸¥ 8ºñÆ® ¹®ÀÚ¼ÂÀº ÈξÀ ´Ü¼øÇØÁú °ÍÀÌ´Ù. ¸®´ª½ºÀÇ Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ¿Í ¸í·É ¶óÀÎ µµ±¸µéÀº óÀ½ ´Ü°è¿¡¼­ ¹Ù·Î UTF-8·Î ÀüȯÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº ISO 10646-1À¸·Î ±¸ÇöÇÑ ·¹º§ 1ÀÌ (¾î¶°ÇÑ °áÇÕ ¹®ÀÚµµ »ç¿ëÇÏÁö ¾Ê°í) »ç¿ëµÊÀ» ÀǹÌÇϸç, ¾î¶°ÇÑ ÇÁ·Î¼¼½Ì Áö¿øµµ ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â ¶óƾ¾î, ±×¸®½º¾î, Å°¸±¾î ¹× ¸¹Àº °úÇÐ ±âÈ£¿Í °°Àº ¼­Ã¼(script)µé¸¸ Áö¿øµÊÀ» ÀǹÌÇÑ´Ù. ÀÌ·¯ÇÑ ·¹º§¿¡¼­ UCS Áö¿øÀº ISO 8859 Áö¿ø¿¡ ºñ±³ÇÒ ¸¸ Çϸç À¯ÀÏÇÑ Áß¿äÇÑ Â÷ÀÌÁ¡Àº ÇöÀç À¯¿ëÇÑ ¼ö¸¹Àº ´Ù¸¥ Á¾·áÀÇ ¹®ÀÚµéÀÌ ÀÖÀ¸¸ç, ¹®ÀÚµéÀº ¸ÖƼ¹ÙÀÌÆ® ½ÃÄö½º·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.

¸®´ª½º¿¡¼­ °á±¹ °áÇÕ ¹®ÀÚ°¡ Áö¿øµÇ°ÚÁö¸¸ ¹Ì¸® ¸¸µé¾îÁø(precomposed) ¹®ÀÚµéÀÌ À¯¿ëÇÑ °áÇÕ ¹®ÀÚ ½ÃÄö½ºº¸´Ù ´õ¿í ÁÁÀº ¼±ÅÃÀÌ µÇ¾î¾ß¸¸ ÇÑ´Ù. ´õ ¸í¹éÇÏ°Ô ¸»ÇÏÀÚ¸é, ¸®´ª½º»ó¿¡¼­ À¯´ÏÄÚµå·Î ¸¸µé¾îÁø ÅؽºÆ®¸¦ ÀÎÄÚµùÇÏ´Â ´õ ÁÁÀº ¹æ¹ýÀº Unicode Technical Report #15¿¡¼­ Á¤ÀÇÇÑ Ç¥ÁØ Çü½Ä C (Normalization Form C)°¡ µÇ¾î¾ß¸¸ ÇÑ´Ù.

¿µÇâ·ÂÀÖ´Â POSIX ºñȣȯ PC ¿î¿µÃ¼Á¦ ÆǸŠȸ»ç Áß Çϳª´Â(¿©±â¼­ À̸§À» ¹àÈ÷Áö´Â ¾Ê°Ú´Ù) ¾î¶² ÆÄÀÏ¿¡¼­, »ç¿ëµÇ´Â ÀÎÄÚµù°ú ¹ÙÀÌÆ® ¼ø¼­¸¦ ½Äº°Çϱâ À§Çؼ­ ¸ðµç À¯´ÏÄÚµå ÆÄÀÏÀÌ ÆøÀÌ ¾ø´Â ³ëºê·¹ÀÌÅ© ½ºÆäÀ̽º ¹®ÀÚ(ZERO WIDTH NOBREAK SPACE: U+FEFF)·Î ½ÃÀÛÇÏ°Ô ÇÏÀÚ°í Á¦¾ÈÇߴµ¥, ÀÌ·¯ÇÑ ±ÔÄ¢¿¡ µû¸£¸é ¾î¶² ÆÄÀÏ¿¡¼­ »ç¿ëµÇ´Â ÀÎÄÚµù°ú ¹ÙÀÌÆ® ¼ø¼­(byte-order)¸¦ ½Äº°Çϱâ À§Çؼ­ ÆøÀÌ ¾ø´Â ³ëºê·¹ÀÌÅ© ½ºÆäÀ̽º ¹®ÀÚ´Â signature ȤÀº "¹ÙÀÌÆ®-¼ø¼­ ¸¶Å©(byte-order mark: BOM)"·Î½á ÂüÁ¶ÇÒ ¼ö ÀÖ ´Ù. ¸®´ª½º´Â BOMÀ̳ª signature¸¦ ÀüÇô »ç¿ëÇÏÁö ¾Ê´Â´Ù. BOMÀ̳ª signatureÀÇ »ç¿ëÀº ¼ö¾øÀÌ ¸¹ÀÌ Á¸ÀçÇÏ°í ÀÖ´Â ASCII-ÆÄÀÏ ¹®¹ý ±ÔÄ¢À» ±ú¶ß¸± °ÍÀÌ´Ù. POSIX ½Ã½ºÅÛ¿¡¼­, ¼±ÅÃÇÑ ·ÎÄÉÀÏÀº ¾î¶² ÇÁ·Î¼¼½ºÀÇ ÀÔÃâ·Â ÆÄÀÏ¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ÀÎÄÚµùÀ» ¹Ì¸® È®ÀÎÇÑ´Ù. ¶ÇÇÑ signature "UTF-8N" ÆÄÀÏ ¾øÀÌ UTF-8 ÆÄÀϵéÀ» È£Ãâ Çϱâ À§Çؼ­ ±×°ÍÀ» Á¦¾ÈÇß¾ú´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ºñ Ç¥ÁØÀûÀÎ ¿ë¾î´Â º¸Åë POSIX ¼¼°è¿¡¼­´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.

10. ¼ÒÇÁÆ®¿þ¾î¸¦ ¾î¶»°Ô ¼öÁ¤Çؾ߸¸ Çϴ°¡?

UTF-8 Áö¿øÀ» À§ÇÑ µÎ °¡Áö Á¢±Ù ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» ¼ÒÇÁÆ® ¹× ÇÏµå º¯È¯À̶ó ºÎ¸£±â·Î ÇÏ°Ú´Ù. ¼ÒÇÁÆ® º¯È¯¿¡¼­ µ¥ÀÌÅÍ´Â UTF-8 Çü½ÄÀ¸·Î ¾îµð¼­³ª º¸Á¸µÇ¸ç ´ÜÁö ¸Å¿ì ÀûÀº ¼öÀÇ ¼ÒÇÁÆ®¿þ¾î¸¸ º¯È­½Ãų ÇÊ¿ä°¡ ÀÖ´Ù. ÇÏµå º¯È¯¿¡¼­ ÇÁ·Î±×·¥ÀÌ ÀоîµéÀÌ´Â UTF-8 µ¥ÀÌÅÍ´Â ÆøÀÌ Å«(wide) ¹®ÀÚ ¹è¿­·Î º¯È¯ µÉ °ÍÀ̸ç, ¶ÇÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ³»ºÎÀÇ ¾î´À °÷¿¡¼­µµ ó¸®µÉ °ÍÀÌ´Ù.

´ëºÎºÐÀÇ ¾ÖÇø®ÄÉÀ̼ǵéÀº ´ÜÁö ¼ÒÇÁÆ® º¯È¯¸¸À¸·Îµµ Àß µ¿ÀÛÇÑ´Ù. ¼ÒÇÁÆ® º¯È¯Àº À¯´Ð½º »ó¿¡¼­ UTF-8À» ¹Þ¾ÆµéÀÏ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¸é, cat°ú echo¿Í °°Àº ÇÁ·Î±×·¥µéÀº ÀüÇô ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±×°ÍµéÀº ÀÔÃâ·ÂÀÌ ISO 8859-2 À̵ç UTF-8ÀÌµç »ó°ü¾øÀÌ ¿Ïº®ÇÏ°Ô ¹«½ÃÇÑ´Ù. ¿Ö³ÄÇϸé, ±×°ÍµéÀº ÀÔÃâ·ÂÀ» ÇÁ·Î¼¼½ºÈ­ÇÏÁö ¾Ê°í ´Ü Áö ¹ÙÀÌÆ® ½ºÆ®¸²À» Ãë±ÞÇϱ⠶§¹®ÀÌ´Ù. ±×°ÍµéÀº ¿ÀÁ÷ UTF-8 »ó¿¡¼­ ¾î¶°ÇÑ º¯È­µµ ÀϾÁö ¾Ê´Â '\n'°ú °°Àº Á¦¾î ÄÚµå¿Í ASCII ¹®ÀÚ¸¸ ÀνÄÇÑ´Ù. ±×·¯¹Ç·Î UTF-8 ÀÎÄÚµù ¹× µðÄÚµùÀº Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ¿¡¼­ µ¿ÀÛÇÏ´Â ÀÌ·¯ÇÑ ¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇؼ­ ¿Ïº®ÇÏ°Ô ÀÌ·ç¾îÁø´Ù.

¹ÙÀÌÆ® ¼ö¸¦ °è»êÇÏ¿© ÇÑ ¹®ÀÚ¿­ ¾ÈÀÇ ¹®ÀÚ ¼ö¸¦ °áÁ¤ÇÏ´Â ¸ðµç ÇÁ·Î±×·¥À» À§Çؼ­ ¾à°£ÀÇ ¼öÁ¤ÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù. UTF-8 ¸ðµå¿¡¼­, ÇÁ·Î±×·¥µéÀº 0x80ºÎÅÍ 0xBF ¹üÀ§ »çÀÌÀÇ ¾î¶² ¹ÙÀÌÆ® ¼öµµ °è»êÇؼ­´Â ¾ÈµÈ´Ù. ¿Ö³ÄÇϸé ÀÌ·¯ÇÑ ¹ÙÀÌÆ® ¼ö´Â ¿¬¼Ó ¹ÙÀÌÆ®(continuation bytes)ÀÌ¸ç ¼ÒÀ¯ÇÏ°í ÀÖ´Â ¹®ÀÚ´Â ¾Æ´Ï±â ¶§¹®ÀÌ´Ù. UTF-8°ú ÇÔ²² C¾ð¾îÀÇ strlen(s)ÇÔ ¼ö ¶ÇÇÑ ¹®ÀÚ¿­ ¾ÈÀÇ ¹®ÀÚ¼ö¸¦ ¹Ù¸£°Ô °è»êÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ±× ´ë½Å, ¸¸ ¾à UTF-8 ·ÎÄÉÀÏÀÌ ¼±ÅõǾú´Ù¸é ¹®ÀÚ¼ö¸¦ °è»êÇϱâ À§ÇÏ¿© mbstowcs (NULL,s,0) ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î, ls ÇÁ·Î±×·¥Àº ¼öÁ¤Çؾ߸¸ ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ±× °ÍÀº µð·ºÅ丮¸¦ À¯Àú¿¡°Ô º¸¿©ÁÖ±â À§ÇÑ Å×À̺íÀÇ ·¹À̾ƿô ü°è¸¦ °®Ãß±â À§Çؼ­ ¹®ÀÚ¼ö¸¦ ÆÄÀϸíÀ¸·Î °è»êÇϱ⠶§¹®ÀÌ´Ù. ÀÌ¿Í À¯»çÇÏ°Ô °íÁ¤µÈ Æø À» °®´Â ÆùÆ®·Î Ãâ·ÂÇÏ°í ±× Ãâ·ÂÀ» Æ÷¸ËÇÏ´Â ÇÁ·Î±×·¥µéÀº ±×°Í¿¡ ¾Ë¸Â°Ô UTF-8 ÅؽºÆ® »óÀÇ ¹®ÀÚ ¼ö¸¦ °è»êÇϱâ À§ÇÑ ¹æ¹ýÀ» ¾Ë¾Æ¾ß¸¸ ÇÑ´Ù. ÇÑ ¹® ÀÚ¸¦ Áö¿ì´Â °Í°ú °°Àº ¿¡µðÅÍ ÇÔ¼ö´Â ÇÑ ¹®ÀÚ¿¡ ¼ÓÇÏ´Â ¸ðµç ¹ÙÀÌÆ®¸¦ Áö ¿ì±â À§Çؼ­ ¾à°£ ¼öÁ¤Çؾ߸¸ ÇÑ´Ù. ¿¹¸¦ µé¸é, ncurses ¶óÀÌ ºê·¯¸®¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ »Ó¸¸ ¾Æ´Ï¶ó vi³ª emacs¿Í °°Àº ¿¡µðÅÍ ¿ª½Ã ÀÌ¿Í ºñ½ÁÇÑ ¿µÇâÀ» ¹Þ´Â´Ù.

¸®´ª½º Ä¿³Î ¶ÇÇÑ ¼ÒÇÁÆ® º¯È¯¸¸À¸·Îµµ Àß µ¿ÀÛÇÒ ¼ö ÀÖÀ¸¸ç, UTF-8À» ¿Ïº®ÇÏ°Ô Áö¿øÇϱâ À§ÇÑ ¾ÆÁÖ ¾à°£ÀÇ ¼öÁ¤¸¸ ÇÊ¿äÇÏ´Ù. ¹®ÀÚ¿­(¿¹¸¦ µé¾î ÆÄÀϸí, ȯ°æ º¯¼ö µî)À» Ãë±ÞÇÏ´Â ´ëºÎºÐÀÇ Ä¿³Î ÇÔ¼öµéÀº ¿µÇâÀ» ¹ÞÁö ¾Ê ´Â´Ù. ´ÙÀ½°ú °°Àº °æ¿ì¿¡ ¼öÁ¤ÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù.

  • ÄÜ¼Ö µð½ºÅ¬·¹ÀÌ¿Í Å°º¸µå µå¶óÀ̹ö(Çϳª ´õÇÏÀÚ¸é VT100 ¿¡¹Ä·¹ÀÌÅÍ) ´Â UTF-8À» ÀÎÄÚµù ¹× µðÄÚµùÇØ¾ß Çϸç Àû¾îµµ À¯´ÏÄÚµå ¹®ÀÚ¼ÂÀÇ ¸î¸î ¼­ ºê¼Â(subset)À» Áö¿øÇؾ߸¸ ÇÑ´Ù.
  • VFAT°ú WinNT¿Í °°Àº ¿ÜºÎ ÆÄÀÏ ½Ã½ºÅÛ µå¶óÀ̹ö´Â ÆÄÀϸíÀ» ³ªÅ¸³»´Â ¹®ÀÚ ÀÎÄÚµùÀ» º¯È¯½ÃÄѾ߸¸ ÇÑ´Ù. ÀÌÀü¿¡ À¯È¿Çß´ø º¯È¯ ¿É¼Ç ¸ñ·Ï¿¡ UTF- 8À» ´õÇؾ߸¸ Çϸç, mount ¸í·ÉÀº À¯Àú°¡ ½ÇÇà½ÃŲ ÇÁ·Î¼¼¼­ °¡ UTF-8 ÆÄÀϸíÀ» º¼ ¼ö ÀÖµµ·Ï Ä¿³Î µå¶óÀ̹ö¿¡°Ô ¾Ë·Á¾ß¸¸ ÇÑ´Ù. VFAT ¹× WinNT ÆÄÀÏ ½Ã½ºÅÛÀº ÀÌ¹Ì À¯´ÏÄڵ带 »ç¿ëÇÏ°í Àֱ⠶§¹®¿¡, UTF-8Àº º¯È¯ Áß¿¡ ¼Õ½ÇÀÌ ÀϾÁö ¾Ê´Â´Ù´Â °ÍÀ» º¸ÁõÇÑ´Ù.
  • ¸ðµç POSIX ½Ã½ºÅÛÀÇ tty µå¶óÀ̹ö´Â ¿ø½ÃÀûÀÎ ÇÑ Çà ÆíÁý ±â´ÉÀ» »ç¿ë ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÀÏÁ¾ÀÇ "cooked" ¸ðµå¸¦ Áö¿øÇÑ´Ù. ¹®ÀÚ »èÁ¦ ÇÔ¼ö°¡ ÀûÀý È÷ ÀÛ¿ëµÇµµ·Ï Çϱâ À§Çؼ­ stty´Â ttyÀÇ UTF-8 ¸ðµå°¡ 0x80¿¡¼­ºÎÅÍ 0xBF ±îÁöÀÇ ¹üÀ§ ¾È¿¡¼­ ¿¬¼Ó ¹è¿­À» ¹®ÀÚ·Î °è»êÇÏÁö ¾Êµµ·Ï UTF-8 ¸ðµå¸¦ ¼³ Á¤Çؾ߸¸ ÇÑ´Ù. Bruno HaibleÀÌ Á¦°øÇÏ´Â stty¿Í Ä¿³ÎÀÇ tty µå¶óÀ̹ö¸¦ À§ÇÑ ¸î°¡Áö ¸®´ª½º ÆÐÄ¡°¡ Á¸ÀçÇÑ´Ù.

11. À¯´ÏÄÚµå¿Í UTF-8À» À§ÇÑ CÀÇ Áö¿ø

GNU glibc 2.2ºÎÅÍ »ìÆ캸¸é, ÇöÀç »ç¿ëÇÏ´Â ·ÎÄÉÀÏ°ú »ó°ü¾øÀÌ, wchar_t ÇüÀº °ø½ÄÀûÀ¸·Î ¿ÀÁ÷ 32ºñÆ® ISO 10646 °ªÀ¸·Î »ç¿ëµÇ´Â °æÇâÀÌ ÀÖ´Ù. ISO C99¿¡¼­ ÇÊ¿ä·Î Çϱ⠶§¹®¿¡ __STDC_ISO_10646__ ¸ÅÅ©·Î Á¤ÀÇ¿¡ ÀÇÇؼ­ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÌ°ÍÀ» ½Ã±×³Î·Î º¸³½´Ù. ISO C ¸ÖƼ-¹ÙÀÌÆ® º¯È¯ ÇÔ¼öµé(wprintf(), mbstowcs() µî)Àº glibc 2.2 ȤÀº ±× À̻󿡼­ ¿Ïº®ÇÏ°Ô ±¸ÇöµÇ¸ç, UTF-8 °úÁ¤À» Æ÷ÇÔÇϸ鼭 wchar_t¿Í ·ÎÄÉÀÏ µ¶¸³ÀûÀÎ ¸ÖƼ¹ÙÀÌÆ® ÀÎÄÚµù »ç ÀÌ¿¡¼­ º¯È¯Çϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¿¹¸¦ µé¸é ¾Æ·¡¿Í °°ÀÌ ¾µ ¼ö ÀÖ´Ù.

wprintf(L"Schone Gru©¬e!\n");

±×·± µÚ¿¡ ¼ÒÇÁÆ®¿þ¾î´Â ÀÌ·¯ÇÑ ÅؽºÆ®¸¦ »ç¿ëÀÚ°¡ ȯ°æ º¯¼ö LC_CTY PE(¿¹¸¦ µé¸é, en_US.UTF-8 ȤÀº de_DE.ISO_885 9-1)À¸·Î ¼±ÅÃÇÑ ·ÎÄÉÀÏ¿¡ ¸í½ÃµÈ ÀÎÄÚµù»ó¿¡ Ãâ·ÂÇÒ °ÍÀÌ´Ù. ÄÄÆÄ ÀÏ·¯´Â C ¼Ò½º ÆÄÀÏ¿¡¼­ »ç¿ëÇÏ´Â ÀÎÄÚµù¿¡ ÀûÇÕÇÑ ·ÎÄÉÀÏ¿¡¼­ µ¿ÀÛÇؾ߸¸ ÇÑ´Ù. ±×¸®°í ³ª¸é À§ÀÇ ¹®ÀÚ¿­Àº À¯´ÏÄÚµå wchar_t ¹®ÀÚ¿­¿¡ ÀÇÇؼ­ ¿Àºê Á§Æ® ÆÄÀÏ¿¡ Á¤È®ÇÏ°Ô ÀúÀåµÉ °ÍÀÌ´Ù. Ãâ·Â½Ã¿¡´Â ·±-ŸÀÓ ¶óÀ̺귯¸®°¡ wc har_t ¹®ÀÚ¿­À» ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â ȯ°æÀÇ ·ÎÄÉÀÏ¿¡ ²À ¸Â´Â ÀÎÄÚµùÀ¸·Î ´Ù½Ã º¯È¯½Ãų °ÍÀÌ´Ù.

12. UTF-8 ¸ðµå´Â ¾î¶»°Ô È°¼ºÈ­µÇ¾î¾ß Çϴ°¡?

¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ 8ºñÆ® ¹®ÀÚ¼Â(ISO 8859-*, KOI-8 µî) °ú UTF-8 ¸ðµÎ¸¦ Áö¿øÇÑ´Ù¸é ±×°ÍÀÌ UTF-8 ¸ðµå¸¦ »ç¿ëÇÑ´Ù°í °¡Á¤ÇÒ ¼ö ÀÖ ´Â Áö ¾ø´ÂÁö¸¦ ¸î °¡Áö ¹æ¹ýÀ¸·Î ¾Ë¾Æ³»¾ß¸¸ ÇÑ´Ù. ¹Ù¶ó°Ç´ë, ¸î ³â ¾È¿¡ ¸ðµç »ç¶÷µéÀÌ ¿ÀÁ÷ UTF-8¸¸À» »ç¿ëÇÏ°í ÀÖÀ» °ÍÀ̸ç, ¿©·¯ºÐµéÀº ±×°ÍÀ» ±âº»°ªÀ¸·Î ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª °íÀüÀûÀÎ 8ºñÆ® ¼Â°ú UTF-8 ¸ðµÎ °¡ Ʋ¸²¾øÀÌ Áö¿øµÇ±â Àü±îÁö´Â ¾Æ´Ï´Ù.

ÇöÀç »ç¿ëµÇ´Â ¾ÖÇø®ÄÉÀ̼ǵéÀº ±×µé °¢°¢ÀÇ UTF-8 ¸ðµå¸¦ È°¼ºÈ­½ÃÅ° ±â À§ÇØ ÀüüÀûÀ¸·Î ´Ù¸¥ ¸í·É ¶óÀÎ ½ºÀ§Ä¡µéÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¸é:

  • xtermÀÇ ¸í·É ¶óÀÎ ¿É¼Ç "-u8"°ú X ¸®¼Ò½ºÀÇ "XTerm*utf8: 1"
  • gnat/gccÀÇ ¸í·É ¶óÀÎ ¿É¼Ç "-gnatW8"
  • sttyÀÇ ¸í·É ¶óÀÎ ¿É¼Ç "iutf8"
  • minedÀÇ ¸í·É ¶óÀÎ ¿É¼Ç "-U"
  • xemacs¿¡´Â UTF-8°ú ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â MULE ÀÎÄÚµù »çÀÌ¿¡¼­ º¯È¯½Ã Å°±â À§ÇÑ elisp ÆÐÅ°Áö°¡ ÀÖ´Ù.
  • vimÀÇ 'fileencoding' ¿É¼Ç
  • lessÀÇ È¯°æ º¯¼ö LESSCHARSET=utf-8

Ưº°ÇÑ ¸í·É ¶óÀÎ ¿É¼ÇÀ̳ª ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇØ ¸ðµç ¼³Á¤ ¸ÞÄ«´ÏÁò À» ±â¾ïÇÏ´Â °ÍÀº ¸÷½Ã Áö·çÇÑ ÀÏÀÌ´Ù. ±×·¯¹Ç·Î ¸î °¡Áö Ç¥ÁØ »çÇ×À» ±ÞÈ÷ ¸¸µé ÇÊ¿ä°¡ ÀÖ´Ù.

13. UTF-8À» Áö¿øÇÏ´Â X-term ¹öÀüÀº ¾î¶»°Ô ±¸Çϴ°¡?

( Thomas Dickey°¡ °ü¸®ÇÏ´Â XFree86 4.0 ȤÀº º¸´Ù ³ôÀº ¹öÀü¿¡¼­ »ç¿ëÇÏ´Â xterm ¹öÀüÀº ÀÌ¹Ì UTF-8 Áö¿øÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¸¸¾à ´ç½ÅÀÌ XFree86 4.0À» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, ´ë¾ÈÀ¸·Î½á °¡Àå ÃÖ½ÅÀÇ xterm °³¹ß ¹öÀüÀ» µû·Î ´Ù¿î·ÎµåÇÒ ¼ö ÀÖÀ¸¸ç ¿©·¯ºÐÀÌ Á÷Á¢ "./configure --enable-wide-chars ; make" ¸í·ÉÀ» »ç¿ëÇÏ¿© ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖ´Ù.

xtermÀÇ ÀÔÃâ·Â ¸ðµå¸¦ UTF-8·Î º¯È¯½ÃÅ°±â À§Çؼ­´Â ¸í·É ¶óÀÎ ¿É¼Ç -u8À» »ç¿ëÇÏ°í UTF-8 ¸ðµåÀÏ °æ¿ì *-ISO10646-1 ÆùÆ®¸¦ »ç¿ëÇ϶ó. ISO 10646-1 ÆùÆ®µéÀº ISO 8859-1 ÆùÆ®µéÀÇ ÇÏÀ§ ¹öÀü°ú ¿Ïº®ÇÏ°Ô È£È¯µÇ±â ¶§¹®¿¡ ISO 8859-1 ¸ðµåÀÏ °æ¿ì *-ISO10646-1 ÆùÆ® ¶ÇÇÑ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

14. xtermÀº ¾ó¸¶³ª ¸¹Àº À¯´ÏÄڵ带 Áö¿øÇϴ°¡?

XFree86 4.0.1¿¡ Æ÷ÇÔµÈ XtermÀº ÇöÀç °íÁ¤ ¹®ÀÚ ÆøÀ» °¡Áö¸ç ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î ½á¾ßÇÏ´Â ISO 10646-1ÀÇ ·¹º§ 1¸¸À» Áö¿øÇÑ´Ù. ´Ù½Ã ¸»ÇÏ ¸é, Å͹̳ÎÀÇ ÀÇ¹Ì ¿¬°á ü°è(terminal semantic)°¡ ÀÌÁ¦ UTF-8À» µðÄÚµùÇÒ ¼ö ÀÖ°í 16ºñÆ® ¹®ÀÚ¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé, Å͹̳ÎÀÇ ÀÇ ¹Ì ¿¬°á ü°è´Â ISO 8859-1ÀÇ °æ¿ì¿Í ±âº»ÀûÀ¸·Î °°´Ù.

°¡Àå ÃÖ½ÅÀÇ xterm °³¹ß ¹öÀüÀº ÀÌ¿¡ µÎ °¡Áö »õ·Î¿î ÇÔ¼öµé( Robert Brady°¡ Á¦°ø)À» Ãß°¡ÇÑ´Ù.

  • ÇÑÁßÀϾî±ÇÀÇ Ç¥Àǹ®ÀÚ¸¦ À§ÇÑ µÎ¹èÀÇ ÆøÀ» °®´Â ÆùÆ®¿¡ ´ëÇÑ ÀÚµ¿ º¯È¯
  • °£´ÜÇÑ °áÇÕ ¹®ÀÚ °ãÃľ²±â(simple overstriking combining characters)

¼±ÅÃµÈ ÀÏ¹Ý ¹®ÀÚ°¡ X×Y Çȼ¿ Å©±â¸¦ °®´Â´Ù¸é , xtermÀº ÀÌÁ¦ ºÎ°¡ÀûÀÎ 2X×Y Çȼ¿ Å©±âÀÇ Æù Æ®¸¦ ·ÎµåÇÏ·Á°í ½ÃµµÇÒ °ÍÀÌ´Ù(AVERAGE_WIDTH ¼Ó¼ºÀÇ µÎ ¹è °ªÀ» °®´Â´Ù´Â Á¡À» Á¦¿ÜÇϸé XLFD¿Í °°´Ù). Unicode Technical Report #11¿¡ µû¸£¸é East Asian Wide(W) ȤÀº East Asian FullWidth(F)ÀÇ Æø Ư¼º(Width property)À» °®´Â ¸ðµç À¯´ÏÄÚµå ¹®ÀÚµéÀ» ³ªÅ¸³»±â À§Çؼ­ xte rmÀº ÀÌ·¯ÇÑ ÆùÆ®¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.

½ºÆäÀ̽º°¡ ¾ø°Å³ª(nonspacing) µÑ·¯½Î°í ÀÖ´Â(enclosing) °áÇÕ ¹®ÀÚµé( ¿¹¸¦ µé¸é, À¯´ÏÄÚµå µ¥ÀÌÅͺ£À̽º¾È¿¡ ÀϹÝÀûÀÎ Ä«Å×°í¸® ÄÚµå Mn À̳ª Me¸¦ °¡Áö°í ÀÖ´Â ¹®ÀÚµé) ¶ÇÇÑ ÇöÀç »ç¿ë °¡´ÉÇϸç ÀÌ°ÍÀº ±âº» -¹®ÀÚ glyph(base-character glyph)À» µÎ °³ÀÇ °áÇÕ ¹®ÀÚ glyph±îÁö ´ÜÁö °ãÃľ²¹Ç·Î½á(³í¸® ¿¬»êÀÚ OR-ing) ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ±âº» ¶óÀÎ ¾Æ·¡ ¿¡ ¾×¼¾Æ®¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ°Ô ÇÏ°í, ÀÛÀº ¹®ÀÚ À§¿¡ ¾×¼¾Æ®¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ°Ô ÇÑ´Ù. ¿¹¸¦ µé¸é °ãÃľ²±â¿Í ÇÔ²² »ç¿ëÇϱâ À§Çؼ­ Ưº°È÷ ¼³°èµÈ Å ±¹ ÆùÆ®¿¡ ´ëÇؼ­µµ ¶ÇÇÑ Àß µ¿ÀÛÇÑ´Ù. ±×·¯³ª Ưº°È÷ "°íÁ¤µÇ°í" Áý´ÜÈ­µÈ ÆùÆ®¿Í °°Àº ¾î¶² ÆùÆ® ¾È¿¡¼­ Å°°¡ Å« ¹®ÀÚ À§¿¡ ¾×¼¾Æ®¸¦ °áÇÕÇÏ´Â °ÍÀº ¿ÏÀüÈ÷ ¸¸Á·½º·´Áö ¾ÊÀ» Áöµµ ¸ð¸¥´Ù. ±×·¯¹Ç·Î ¹Ì¸® ¸¸µé¾îÁø(precompose d) ¹®ÀÚµéÀ» »ç¿ë °¡´ÉÇÑ °æ¿ì¿¡´Â ±×°ÍÀÌ ´õ ³ªÀº °á°ú¸¦ ³ºÀ» °ÍÀÌ´Ù.

ÅؽºÆ® ¸ðµå ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¡¸ÓµéÀÌ ÁÖÀÇÇØ¾ß ÇÒ Á¡:

xtermÀÇ Ãâ·ÂÀº ÇÑÁßÀϾî±ÇÀÇ ÇÑÀÚ¿Í °áÇÕ ¹®ÀÚ¸¦ À§ÇÑ Áö¿øÀ¸·Î½á º¸´Ù ´Â ºñ·Ê ¹®ÀÚó·³ ¹ÝÀÀÇÒ °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¶óƾ/±×¸®½º/Å°¸± µîÀÇ ¹®ÀÚ´Â ÇϳªÀÇ ¼¼·Î¿­ À§Ä¡¸¦ ÇÊ¿ä·Î ÇÏ´Â ¹Ý¸é, ÇÑÁßÀϾî±ÇÀÇ ÇÑÀÚ´Â 2°³ÀÇ ¹®ÀÚ ¸¦ ÇÊ¿ä·Î ÇÏ¸ç °áÇÕ ¹®ÀÚ´Â Çϳªµµ ÇÊ¿ä·Î ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

¿ÀÇ ¼Ò½º ±×·ìÀÇ ´ÜÀÏ À¯´Ð½º »ç¾çÀº ÇϳªÀÇ ¹®ÀÚ°¡ ¾ó¸¶³ª ¸¹Àº ¼¼·Î¿­À» Â÷ÁöÇÏ°í ÀÖ ´ÂÁö¸¦ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Å×½ºÆ® ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â µÎ °³ÀÇ C ÇÔ¼ö wcwidth()¿Í wcswidth() ¸¦ ¸í½ÃÇÏ°í ÀÖ´Ù.

#include <wchar.h>
int wcwidth(wchar_t wc);
int wcswidth(const wchar_t *pwcs, size_t n);

Markus Kuhn ÀÌ ºñ »ó¿ë(free)À¸·Î ¹èÆ÷ÇÏ´Â wcwidth() ÇÔ¼ö´Â C ¶óÀ̺귯¸®°¡ ¾ÆÁ÷ ÀûÇÕÇÑ ÇÔ¼ö¸¦ Á¦°øÇÏÁö ¾Ê´Â Ç÷§ÆûÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ ´Ù.

xtermÀº ¾ÕÀ¸·Î ´Ù°¡¿Ã ¹Ì·¡¿¡ ´õ¿í º¹ÀâÇÑ ¿ÏÀüÇÑ À¯´ÏÄÚµå ·»´õ¸µ ¿£ Áø¿¡¼­ ´ç½ÅÀÌ ±â´ëÇÒ Áöµµ ¸ð¸¦ ´ÙÀ½ÀÇ ±â´ÉµéÀ» ¾Æ¸¶µµ Áö¿øÇÏÁö ¾ÊÀ» °Í ÀÌ´Ù.

  • À¯Å¾î¿Í ¾Æ¶ø ¹®ÀÚµéÀ» À§ÇÑ ¾ç¹æÇâ Ãâ·Â
  • ¾Æ¶øÀÇ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀ» ´ë½ÅÇÒ ¾ç½Ä
  • ÀεµÀÇ ¿¬°á¼±(ligature)À» ´ë½ÅÇÒ ¹®ÀÚ
  • ÇÑ±Û ÀÚ¸ð
  • °áÇÕ ¹®ÀÚ¸¦ ÀúÀåÇÒ ÀÓÀÇÀÇ ½ºÅÃ

±×·¯¹Ç·Î À¯Å¾î¿Í ¾Æ¶ø¾î »ç¿ëÀÚµéÀº À¯Å¾î¿Í ¾Æ¶ø ¹®ÀÚ¿­À» Å͹̳ηΠº¸³»±â Àü¿¡ ¹®ÀÚ¿­ÀÇ ¹æÇâÀ» ¹ÝÀü½ÃÅ°°í ¿ÞÂÊÀ» ä¿ì´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ ·Î±×·¥À» »ç¿ëÇؾ߸¸ ÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ¾ç¹æÇâ ÇÁ·Î¼¼½ÌÀº xterm¿¡ ÀÇÇؼ­ °¡ ¾Æ´Ï¶ó ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÇÇؼ­ ÀÌ·ç¾îÁ®¾ß¸¸ ÇÑ´Ù. À¯ÅÂ¾î ¹× ¾Æ¶ø¾î¿Í °ü·ÃµÈ »óȲÀº ¹Ì¸® ¸¸µé¾îÁø glyph°ú ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀÇ À¯È¿¼º¿¡ ÀÖ¾î ¼­ Àû¾îµµ ISO 8859 ÀÌÈÄ °³¼±µÇ°í ÀÖ´Ù. Áö±ÝÀ¸·Î½á´Â ¾ç¹æÇâ Áö¿øÀÌ Á¤¸» ·Î xterm¿¡ ³»ÀåµÉ °ÍÀÎÁö ÀÌ°ÍÀÌ ¾ó¸¶³ª Á¤È®ÇÏ°Ô ÀÛµ¿ÇÒ °ÍÀÎÁö ¸íÈ®ÇÏÁö ¾Ê´Ù. ISO 6429 = ECMA-48°ú À¯´ÏÄÚµå bidi ¾Ë°í¸®Áò ¸ðµÎ ´ë¾ÈÀûÀÎ ½ÃÀÛ Æ÷ÀÎÆ®(starting point) ¸¦ Á¦°øÇÑ´Ù. E CMA Technical Report TR/53À» º¸µµ·Ï Ç϶ó.

¸¸¾à ´ç½ÅÀÌ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¾ç¹æÇâ ÅؽºÆ® Ãâ·ÂÀ» Áö¿øÇÒ °èȹÀ̶ó¸é , À¯´ÏÄÚµå Bidi ¾Ë°í¸®ÁòÀ» ºñ »ó¿ë(free)À¸·Î ±¸ÇöÇÑ Dov GrobgeldÀÇ FriBidi ȤÀº Mark LeisherÀÇ PretBidi ¾Ë°í¸®ÁòÀ» º¸¶ó.

ÃÖ±Ù¿¡ ºñ·Ï Robert B rady°¡ bidi Áö¿øÀ» À§ÇÑ ¸î¸î Ãʱ⠽ÇÇèÀûÀÎ ÆÐÄ¡¸¦ ¹ßÇ¥Çϱä ÇßÁö¸¸ xtermÀº ÇöÀç ¾Æ¶ø¾î, ÇÑ±Û ÀÚ¸ð ¹× Àεµ ÅؽºÆ® Æ÷¸ËÆà ¾Ë°í¸®ÁòÀ» Áö¿øÇÏ Áö ¾Ê´Â´Ù. VT100 ¾Ö¹Ä·¹ÀÌÅÍ¿¡¼­ ÀÌ·¯ÇÑ °ÍµéÀ» Áö¿øÇÏ´Â °ÍÀÌ ¾Ë¸ÂÀºÁö > ȤÀº ¹Ù¶÷Á÷ÇÑÁö ¿©ÀüÈ÷ ºÒ¸íÈ®ÇÏ´Ù. ¾ÖÇø®ÄÉÀ̼ǵéÀº ¾Æ¶ø¾î¿Í ÇѱÛÀ» Æ÷ ¸ËÇÏ´Â ¾Ë°í¸®ÁòÀ» ½±°Ô ¾ÖÇø®ÄÉÀÌ¼Ç ½º½º·Î Àû¿ëÇÒ ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé xt ermÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ÇÏ¿©±Ý ¸ðµç ÇÊ¿äÇÑ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¾ç½ÄÀ» Ãâ·ÂÇÏ´Â °ÍÀ» Çã¿ëÇϱ⠶§¹®ÀÌ´Ù. Àεµ ¼­Ã¼¿¡ °üÇؼ­ X ÆùÆ® ¸ÞÄ«´ÏÁòÀº ÇʼöÀûÀÎ ¿¬°á¼±(ligature)À» ´ëüÇÒ ¶Ç ´Ù¸¥ ÇüÅÂÀÇ ¿¬°á¼±À» À§ÇÑ ÀÎÄÚµùÀ» Áö±Ý> À¸·Î½á´Â ÀüÇô Áö¿øÇÏÁö ¾Ê°í ÀÖ´Ù. ±×·¡¼­ Á¦°øÇÒ¸¸ ÇÑ xtermÀÌ ÀüÇô ¾ø´Ù . Àεµ¾î Ãâ·ÂÀÌ ÇÊ¿äÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀº xterm°ú °°Àº VT100 ¿¡¹Ä·¹ÀÌÅÍ ´ë ½Å¿¡ Pango¿Í °°Àº ÀûÀýÇÑ À¯´ÏÄÚµå X11 ·»´õ¸µ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ¿í ÁÁ´Ù.

15. ISO-10646ÀÇ X11¿ë ÆùÆ®´Â ¾îµð¼­ ±¸ÇÒ ¼ö Àִ°¡?

Áö³­ ¸î³â µ¿¾È ²Ï ¸¹Àº ¼öÀÇ À¯´ÏÄÚµå ÆùÆ®µéÀÌ X11¿ëÀ¸·Î »ç¿ë °¡´ÉÇÏ°Ô µÇ¾úÀ¸¸ç, »ç¿ë °¡´ÉÇÑ ÆùÆ®ÀÇ ¼ö´Â ºü¸¥ ¼Óµµ·Î Áõ°¡ÇÏ°í ÀÖ´Ù.

  • Markus KuhnÀº ¸¹Àº ´Ù¸¥ Áö¿øÀÚµé°ú ÇÔ²² X11°ú °ü·ÃÇÑ °ú°ÅÀÇ -misc-FIXED-*-Iso8859-1 ÆùÆ®µéÀ» ¸ðµç À¯·´ ¹®ÀÚµé(¶óƾ¾î, ±×¸® ½º¾î, Å°¸±¾î, ±¹Á¦ÀûÀΠǥÀ½ ¹®ÀÚ, ¼öÇÐ ¹× ±â¼ú ºÎÈ£¿Í ¾Æ¸£¸Þ´Ï¾Æ¾î, ±× ·çÁö¾Æ¾î, īŸī³ª, ű¹¾î, ±×¿ÜÀÇ ´Ù¸¥ ¹®ÀÚ¿Í °°Àº ¸î¸î ÆùÆ®µé¿¡¼­ »ç ¿ëÇÏ´Â)À» Áö¿øÇÏ´Â ¸ñ·Ï À϶÷À¸·Î È®Àå½ÃÄ×´Ù. ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ¸·Á¸é X11À» À§ÇÑ À¯´Ï ÄÚµå ÆùÆ®¿Í Åø ÆäÀÌÁö¸¦ »ìÆ캸¶ó. ÀÌ·¯ÇÑ ÆùÆ®µéÀº ÇöÀç XFree86 4.0.1 ȤÀº ±× ÀÌ»óÀÇ ¹öÀü°ú ÇÔ²² ¹è Æ÷µÈ´Ù.
  • Markus´Â ¶ÇÇÑ X11R6.4 ¹èÆ÷ÆÇ ³»¿¡ Æ÷ÇÔµÈ ¸ðµç Adobe¿Í Bmp;H BDFÀÇ ÆùÆ®µéÀÇ ISO 10646-1 ¹öÀüÀ» ÁغñÇß´Ù. ÀÌ·¯ÇÑ ÆùÆ®µéÀº ÀÌ¹Ì ¿ÏÀüÇÑ Æ÷½ºÆ®½ºÅ©¸³Æ® ÆùÆ®ÀÇ ¸ñ·Ï À϶÷(´ë·« 30°³ÀÇ ¹®ÀÚµéÀÌ Ãß°¡ µÇ¾úÀ¸¸ç ´ëºÎºÐ CP1252 MS-À©µµ¿ìÁî¿¡¼­ ¶ÇÇÑ »ç¿ëµÈ´Ù. ¿¹¸¦ µé¸é, ±ò²û ÇÑ ÀοëºÎÈ£¿Í ´ë½Ã ±âÈ£(-) µîÀÌ ÀÖ´Ù)À» Æ÷ÇÔÇÑ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ °ÍµéÀº ISO 8859-1 ÀÎÄÚµù ¾Æ·¡¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø¾ú´Ù. Áö±ÝÀº ISO 10646-1 ¹ö Àü³»¿¡¼­ ¸ðµÎ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Ù.
  • XFree86 4.0Àº ISO 10646-1 ÀÎÄÚµù¿¡¼­ ¸ðµç ¾ÖÇÃ/¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ÆùÆ® ¸¦ X ¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ÅëÇÕµÈ Æ®·çŸÀÔ ÆùÆ® ¿£Áø°ú ÇÔ²² Á¦ °øµÈ´Ù.
  • ¾ÕÀ¸·ÎÀÇ XFree86 ¸±¸®Áî´Â ¹èÆ÷ÆÇÀ¸·ÎºÎÅÍ °ú°ÅÀÇ BDF ÆùÆ®µéÀ» ´ëºÎ ºÐ Á¦°ÅÇÏ°í ±×°ÍµéÀ» ISO 10646-1·Î ÀÎÄÚµùÇÑ ¹öÀüÀ¸·Î ´ëüµÉ °Í °°´Ù. X ¼­¹ö´Â °ú°ÅÀÇ 8ºñÆ® ¼ÒÇÁÆ®¿þ¾î°¡ ¾î¶² ÆùÆ®¸¦ ¿äûÇÒ ¶§ À绡¸® ISO 106 46-1 ÆùÆ® ÆÄÀϷκÎÅÍ ISO 8859-*¿Í °°Àº ´Ù¸¥ ÆùÆ® ÀÎÄÚµùÀ» »ý¼ºÇÏ´Â ÀÚ µ¿ ÀÎÄÚµù º¯È¯±â·Î È®ÀåµÉ °ÍÀÌ´Ù. Çö´ëÀÇ ¼ÒÇÁÆ®¿þ¾î´Â ISO 10646-1 ÆùÆ® ÀÎÄÚµùÀ» ¿ÀÈ÷·Á Á÷Á¢ »ç¿ëÇؾ߸¸ ÇÑ´Ù.
  • ClearlyU (cu12)´Â Mark Leisher°¡ ¸¸µç 3700°³ ÀÌ»óÀÇ ¹®ÀÚµéÀ» °¡Áø X11À» À§ÇÑ 12°³ÀÇ Á¡°ú 100dpi(´ÜÀ§ ÀÎÄ¡´ç Á¡ÀÇ °³¼ö)¿¡ ºñ·ÊÇÏ´Â Å©±âÀÇ ¸Å¿ì À¯¿ëÇÑ ISO 10646-1 BDF ÆùÆ®ÀÌ ´Ù.( À̹ÌÁö ¿¹ )
  • NEW: Dmitry Yu. Bolkhovityanov´Â Åؽº Æ® ¸ðµåÀÇ IBM PC ¿¡¹Ä·¹ÀÌÅÍ¿¡¼­ »ç¿ëÇϱâ À§Çؼ­ BDF ÆÄÀÏ ¾È¿¡ À¯´ÏÄÚ µå VGA ÆùÆ®¸¦ ¸¸µé¾ú´Ù.
  • Roman CzyborraÀÇ GNU À¯´ÏÄÚ µå ÆùÆ® ÇÁ·ÎÁ§Æ®´Â ºñ »ó¿ë(free)ÀÇ ¿Ïº®ÇÑ 8×16/16×16 ÇÈ ¼¿ À¯´ÏÄÚµå ÆùÆ®¸¦ ¸ðÀ¸´Â ¿¬±¸¸¦ ÇÏ°í ÀÖ´Ù.
  • etl-unicode´Â Primoz PeterlinÀÌ ÁغñÇÑ ISO 10646-1 BDF ÆùÆ®ÀÌ´Ù.
  • George Williams´Â Type1 À¯´ÏÄÚµå ÆùÆ® Æйи®¸¦ ¸¸µé¾ú´Âµ¥, ÀÌ°ÍÀº ¶ÇÇÑ BDF¿¡¼­µµ À¯¿ëÇÏ´Ù. ±×´Â ¶ÇÇÑ PfaEdit Æ÷½ºÆ®½ºÅ©¸³Æ®¿Í ºñÆ®¸Ê ÆùÆ® ¿¡µðÅ͸¦ °³¹ßÇß´Ù.

À¯´ÏÄÚµå X11¿ë ÆùÆ®ÀÇ ¸íĪÀº -ISO10646-1À̶ó´Â ´Ü¾î·Î ³¡³­´Ù. ÀÌ°ÍÀº ÇöÀç ¸ðµç À¯´ÏÄÚµå¿Í ISO 10646-1 16ºñÆ® ÆùÆ®µéÀ» À§ÇÑ X ³í¸® ÆùÆ® ±â¼úÀÚ(X Logical Font Descriptor: XLF D) ¿µ¿ª CHARSET_REGISTRY¿Í CHARSET_ENCODING À» À§ÇØ °ø½ÄÀûÀ¸·Î µî·ÏµÈ °ªÀÌ´Ù. *-ISO10646-1 Æù Æ®µéÀº Àüü À¯´ÏÄÚµå ¹®ÀÚ¼ÂÀÇ ¸í½ÃµÇÁö ¾ÊÀº ¸î¸î ¼­ºê¼ÂÀ» Æ÷ÇÔÇÏ°í ÀÖ ´Ù. ±×¸®°í »ç¿ëÀÚµéÀº ±×µéÀÌ ¼±ÅÃÇÑ ÆùÆ®°¡ ¹«¾ùÀ̵çÁö °£¿¡ ÇÊ¿äÇÑ ¹®ÀÚ µéÀÇ ¼­ºê¼ÂÀ» Æ÷ÇÔÇÏ´ÂÁö È®ÀÎÇؾ߸¸ ÇÑ´Ù.

*-IS010646-1 ÆùÆ®µéÀº ÀϹÝÀûÀ¸·Î ÆùÆ®¿¡¼­ À¯È¿ÇÏÁö ¾Ê Àº ¾î¶² ¹®ÀÚ¸¦ ³ªÅ¸³»±â À§Çؼ­ À¯´ÏÄڵ尡 ¾Æ´Ñ(non-Unicode) Ưº°ÇÑ gly phÀ» °¡¸®Å°´Â DEFAULT_CHAR °ªÀ» ¸í½ÃÇÏ°í ÀÖ´Ù(ÀϹÝÀûÀ¸·Î 0x00¿¡ À§Ä¡ÇÏ°í H Å©±â¸¦ °®´Â ´ë½Ã(-)·Î ¿¬°áµÈ boxÀÌ´Ù). ÀÌ°ÍÀº »ç¿ëÀÚ µéÀÌ Àû¾îµµ Áö¿øÇÏÁö ¾Ê´Â ¹®ÀÚ°¡ ÀÖ´Ù´Â °ÍÀ» ¸í¹éÇÏ°Ô ¾Ë¾ÆÂ÷¸± ¼ö ÀÖµµ ·Ï ÇÑ´Ù. xtermÀ» À§ÇÑ 6x13°ú °°Àº Å©±âÀÇ ÀÛÀº °íÁ¤-Æø ÆùÆ®µé(the small er fixed-width fonts)Àº ¸ðµç À¯´ÏÄڵ带 Áö¿øÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ¿Ö³ÄÇÏ ¸é °£Áö(Kanji)¿Í °°Àº ¸¹Àº ¼­Ã¼µé(scripts)Àº À¯·´Áö¿ª À¯ÀúµéÀÌ Æø³Ð°Ô »ç¿ëÇÏ´Â Çȼ¿ »çÀÌÁî º¸´Ù ÈξÀ ´õ Å« Çȼ¿ »çÀÌÁî·Î ³ªÅ¸³»±â ¶§¹®ÀÌ´Ù. À¯·´ÀÎÀÌ »ç¿ëÇϱâ À§ÇÑ ÀüÇüÀûÀÎ À¯´ÏÄÚµå ÆùÆ®µéÀº CEN MES-3 ·¹ÆÛÅ丮¿Í °°Àº ¿ÀÁ÷ 1000³»Áö 3000°¡Áö ¹®ÀÚµéÀÇ ¼­ºê¼ÂÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù.

¿©·¯ºÐµéÀº *-ISO10646-1 ÆùÆ®¿¡¼­ ASCII ¹®ÀÚÀÇ ÀÎ¿ë ºÎÈ£ ÇüÅ°¡ Ç¥ÁØ ¶óÀÎ ¾È ¿¡ ÀÎ¿ë ºÎÈ£¸¦ ¹èÄ¡ÇÏ°í ´Ù¸¥ Ç÷§Æû¿¡¼­µµ ½ÇÇàÇϱâ À§Çؼ­ ¾à°£ ¹Ù²î¾ú ´Ù´Â °ÍÀ» ¾Ë¾Æ Â÷¸± ¼ö ÀÖÀ» °ÍÀÌ´Ù.

16. UTF-8 Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ¿Í °ü·ÃµÈ À̽´´Â ¹«¾ùÀΰ¡?

VT100 Å͹̳Π¿¡¹Ä·¹ÀÌÅ͵éÀº ´Ù¸¥ ¹®ÀÚ¼Âµé »çÀ̸¦ ÀüȯÇϱâ À§Çؼ­ ISO 2022 (= ECMA-35) ESC ½ÃÄö½º¸¦ ¹Þ¾ÆµéÀδÙ.

UTF-8Àº ISO 2022ÀÇ °üÁ¡¿¡¼­ º¸¸é "´Ù¸¥ ÄÚµù ½Ã½ºÅÛ(other coding system)"ÀÌ´Ù (ECMA 35ÀÇ ¼½¼Ç 15.4¸¦ º¸¶ó). UTF-8Àº ISO 2022 SS2/SS3/G0/G1/ G2/G3ÀÌ ¼ÓÇÏ´Â ¼¼°èÀÇ ¿ÜºÎ¿¡ ÀÖ´Ù. ±×·¯¹Ç·Î ¸¸¾à ISO 2022¿¡¼­ UTF-8·Î ÀüȯÇϸé, ¸ðµç SS2/SS3/G0/G1/G2/G3 ¹®Àº UTF-8À» ¹þ¾î³ª ´Ù½Ã ISO 2022·Î µ¹¾Æ°¡±â Àü±îÁö´Â Àǹ̸¦ ÀÒ°Ô µÈ´Ù. UTF-8Àº ±¹ÀûÀÌ ¾ø´Â ÀÎÄÚµùÀ̹ǷÎ, ½º½º·Î Á¾°á½ÃÅ°´Â(self-terminating) ªÀº ±æÀÌÀÇ ¹ÙÀÌÆ®¸¦ °®´Â ½ÃÄö½º( short byte sequence)´Â ÀüȯÇÏ´Â ¹®Àå°ú´Â µ¶¸³ÀûÀ¸·Î ¾î¶² ¹®ÀÚ°¡ Àǹ̰¡ ÀÖ´ÂÁö¸¦ ¿Ïº®ÇÏ°Ô ÆÇÁ¤ÇÑ´Ù. ISO 10646-1 ¾ÈÀÇ G0¿Í G1Àº ISO 8859-1ÀÇ ±×°Íµé°ú °°´Ù. ±×¸®°í G2/G3´Â ISO 10646 ³»¿¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ¸ðµç ¹®ÀÚ´Â °íÁ¤µÈ À§Ä¡¸¦ °¡Áö¸ç ¾î¶²ÇÑ º¯°æµµ ÀϾÁö ¾Ê±â ¶§¹®ÀÌ´Ù . ¿ì¿¬È÷ ¹ÙÀ̳ʸ® ÆÄÀÏÀ» Å͹̳ο¡ ´ýÇÁÇÑ ÈÄ¿¡ Å͹̳ÎÀÌ ÀÌ»óÇÑ ±×·¡ÇÈ- ¹®ÀÚ ¸ðµå·Î ÀüȯµÈ ä ³²¾ÆÀÖ´Â °ÍÀº UTF-8¿¡¼­´Â °¡´ÉÇÏÁö ¾Ê´Ù. ÀÌ°ÍÀº UTF-8 ¸ðµå¿¡ ÀÖ´Â ¾î¶² Å͹̳ÎÀ» ISO 2022 ¸ðµå À϶§º¸´Ù ÈξÀ ´õ °­·ÂÇÏ °Ô µ¿ÀÛÇϵµ·Ï ÇÑ´Ù. ±×·¯¹Ç·Î Å͹̳ÎÀÌ ¿ì¿¬È÷ ISO 2022 ¸ðµå·Î µ¹¾Æ°¥ ¼ö ¾øµµ·Ï ±×°ÍÀ» UTF-8 ¸ðµå·Î °íÁ¤½ÃÄÑ ³õ´Â °ÍÀÌ È¿°úÀûÀÌ´Ù.

ISO 2022 Ç¥ÁØÀº ISO 2022 ¸ðµå¿¡¼­ ¹þ¾î³ª±â À§ÇÑ À̽ºÄÉÀÌÇÁ ¹®ÀÚ %ÀÇ ½ÃÄö½º ¹üÀ§¸¦ ¸í½ÃÇÏ°í ÀÖ´Ù(´Ù¸¥ ÄÚµù ½Ã½ºÅÛ ÁöÁ¤, DOCS). ±×¸®°í ±×·¯ ÇÑ ¼ö¸¹Àº ½ÃÄö½ºµéÀº UTF-8À» À§Çؼ­ ISO 2375 ¹®ÀÚ ÄÚµå ¼Â ±¹Á¦ µî·ÏºÎ(I nternational Register of Coded Character Sets)ÀÇ ¼½¼Ç 2.8¿¡ µî·ÏµÇ ¾ú´Ù.

  • ESC %G´Â ISO 2022·Î ´Ù½Ã µ¹¾Æ°¡µµ·Ï ÇÏ´Â ¹æ½ÄÀ¸·Î ISO 2022¿¡ ¸í½ÃµÇÁö ¾ÊÀº ±¸Çö ·¹º§·Î UTF-8À» È°¼ºÈ­½ÃŲ´Ù.
  • ESC %@´Â ESC %G¸¦ °ÅÃļ­ UTF-8·Î µé¾î°£ °æ¿ì¿¡ UTF-8¿¡¼­ ISO 2022·Î µÇµ¹¾Æ°¡°Ô ÇÑ´Ù.
  • ESC %/G´Â UTF-8ÀÇ ·¹º§ 1À¸·Î ¹Ýȯ°ª ¾øÀÌ Àüȯ½ÃŲ´Ù.
  • ESC %/H´Â UTF-8ÀÇ ·¹º§ 2À¸·Î ¹Ýȯ°ª ¾øÀÌ Àüȯ½ÃŲ´Ù.
  • ESC %/I´Â UTF-8ÀÇ ·¹º§ 3À¸·Î ¹Ýȯ°ª ¾øÀÌ Àüȯ½ÃŲ´Ù.

Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ°¡ UTF-8 ¸ðµå¿¡ ÀÖ´Â µ¿¾È¿¡ G2/G3·Î Àüȯ½ÃÅ°´Â ÀÌ ½ºÄÉÀÌÇÁ ½ÃÄö½º¿Í °°Àº ¸ðµç ISO 2022 À̽ºÄÉÀÌÇÁ ½ÃÄö½º´Â ¹«½ÃµÈ´Ù. UTF -8 ¸ðµå¿¡¼­ µ¿ÀÛÇÏ´Â Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ »óÀÇ À¯ÀÏÇÑ ISO 2022 ½ÃÄö½º´Â, UTF-8¿¡¼­ ISO 2022 ü°è·Î ´Ù½Ã Àüȯ½ÃÅ°´Â ESC %@ÀÌ´Ù.

ºñ·Ï UTF-8 ¸ðµå°¡ 0x80¿¡¼­ 0x9F±îÁöÀÇ ¹üÀ§¸¦ °®´Â ¹ÙÀÌÆ® °ø°£À» »ç ¿ëÇÏÁö¸¸, ¿©ÀüÈ÷ CSI¿Í °°Àº C1 Á¦¾î ¹®ÀÚµéÀ» »ç¿ëÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. UTF-8 ¸ðµå¿¡ ÀÖ´Â Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ´Â ¾î¶² Á¦¾î ¹®ÀÚ¸¦ Çؼ®Çϱâ Àü¿¡ UTF-8 µðÄÚ´õ¸¦ ÀԷµǴ ¹ÙÀÌÆ® ½ºÆ®¸²¿¡ Àû¿ëÇؾ߸¸ ÇÑ´Ù ´Â °ÍÀ» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. C1 ¹®ÀÚµéÀº U+007F¸¦ ³Ñ´Â ´Ù¸¥ ¹®ÀÚµé ó·³ UTF-8 ¸ðµå·Î µðÄÚµùµÈ´Ù.

17. UTF-8ÀÌ °¡´ÉÇÑ Áö±Ý »ç¿ë ÁßÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀº ¾î¶² °ÍÀÌ Àִ°¡?

  • XFree86 4.0 ȤÀº ±× ÀÌ»óÀÇ ¹öÀü°ú ÇÔ²² »ç¿ëµÇ´Â xterm("./configure --enable- wide-chars; make" ¸í·ÉÀ¸·Î ÄÄÆÄÀÏÇÏ°í xtermÀ» ½ÇÇàÇÒ ¶§ ¸í·É ¶ó ÀÎ ¿É¼Ç -u8À» »ç¿ëÇ϶ó).
  • NEW: Yudit 2.0Àº Gaspar Sinai°¡ °³¹ßÇÑ ºñ »ó¿ë X11 À¯´ÏÄÚµå ¿¡µðÅÍÀÌ´Ù.
  • Thomas Wolff°¡ °³¹ßÇÑ Mined 9 8Àº UTF-8 »ç¿ëÀÌ °¡´ÉÇÑ ÅؽºÆ® ¿¡µðÅÍÀÌ´Ù.
  • Cooledit´Â 3.15.0¹öÀü ÀÌÈÄ·Î UT F-8°ú UCS¸¦ Áö¿øÇÑ´Ù.
  • NEW: QEmacs´Â UTF-8 Å͹̳ο¡¼­ »ç¿ëÇϱâ À§ÇÑ ÀÛÀº ¿¡ µðÅÍÀÌ´Ù.
  • 346¹öÀü ÀÌÈÄÀÇ less ´Â UTF-8À» Áö¿øÇÑ´Ù.
  • C-Kermit 7.0 Àº Àü¼Û(transfer), Å͹̳Π¹× ÆÄÀÏ ¹®Àڼ¿¡ °üÇØ UTF-8À» Áö¿øÇÑ´Ù.
  • PerlÀº "use utf8;" ¿É¼ÇÀ¸·Î ¿ä ûÇßÀ» °æ¿ì¿¡ ¹öÀü 5.6ºÎÅÍ ¸î¸î ÇÙ½ÉÀûÀÎ UTF-8À» Áö¿ø(core UTF-8 support)ÇÑ´Ù. ÀÌ°ÍÀº ¹®ÀÚ ¿­ÀÌ UTF-8·Î ÀúÀåµÇ°í(±×¸®°í UTF-8·Î ű×È­ µÇ¸ç) length() ÇÔ¼ö°¡ ¹ÙÀÌ Æ® ¼ö ´ë½Å¿¡ ¹®ÀÚµéÀ» ¹ÝȯÇÔÀ» ÀǹÌÇÑ´Ù. UTF-8 Áö¿øÀ» °­È­Çϱâ À§ÇÑ ¸¹ Àº ¿¬±¸µéÀÌ Áö±Ý ¼ø°£¿¡µµ ¿©ÀüÈ÷ ÁøÇà ÁßÀÌ´Ù( perl-unicode@perl.org ¸ÞÀϸµ ¸®½ºÆ®¸¦ º¸¶ó). »ç ¿ë °¡´ÉÇÑ ±â´É°ú Á¦ÇѵǴ ±â´ÉÀ» º¸·Á¸é perldoc perlunicode ¿Í perldoc utf8À» Àо¶ó.
  • Python 1.6Àº ÇöÀç À¯´ÏÄÚµå Áö¿øÀ» ¿Ï¼ºÇÏ°í ÀÖ´Ù.
  • Tcl/Tk´Â ¹öÀü 8.1ºÎÅÍ À¯´ÏÄڵ带 ±âº» ¹®ÀÚ¼ÂÀ¸·Î »ç¿ëÇÏ¿© °¡µ¿µÈ´Ù. ±×·¯³ª ºÒÇàÇÏ°Ôµµ TkÀÇ ÆùÆ® ó¸® ÄÚµå ¿¡´Â ¿©ÀüÈ÷ ¹ö±×°¡ À־ 16ºñÆ® *-iso10646-1 ÆùÆ®¸¦ À¯´ÏÄÚµå ¹®ÀÚ¿­À» µð ½ºÇ÷¹ÀÌÇϱâ À§Çؼ­ »ç¿ëÇÒ ¼ö ¾ø´Ù.
  • Exmh´Â MH ¸ÞÀÏ ½Ã½ºÅÛÀ» À§ÇÑ GUI ÇÁ·±Æ®¿£µåÀÌ¸ç ¸¸¾à Tcl/Tk 8.1 ÀÌ»ó ¹öÀü¿¡¼­ »ç¿ëµÇ´Â °æ¿ì ¹ö Àü 2.1.1 ÀÌÈĺÎÅÍ À¯´ÏÄڵ带 Áö¿øÇÑ´Ù.
  • 2000-03-06 ¸±¸®Áî ÀÌÈĺÎÅÍ CLISP´Â UTF-8À» Æ÷ÇÔÇÑ ¸ðµç ¸ÖƼ-¹ÙÀÌÆ® ÀÎÄÚµù°ú wcwidth() ¹× wcswidth()ÇÔ¼ö¿Í ºñ±³ÇÒ ¸¸ÇÑ API¸¦ °¡Áø char-wid th ¹× string-width ÇÔ¼ö¿Í ÇÔ²² µ¿ÀÛÇÒ ¼ö ÀÖ´Ù.
  • SamÀº vi¶û ºñ½ÁÇÑ Plan9 UTF-8 ¿¡µðÅÍÀ̸ç, ¸®´ª½º¿Í Win32¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.( Plan9Àº ¹®ÀÚ ÀÎÄÚµùÀ¸·Î½á UTF-8·Î ¿Ïº®ÇÏ°Ô ÀüȯµÇ´Â(switchedc ompletely to UTF-8 as its character encoding) ÃÖÃÊÀÇ ¿î¿µÃ¼Á¦¿´´Ù)
  • Matty Farrow°¡ °³¹ßÇÑ 9term Àº Plan9 ¿î¿µÃ¼Á¦ÀÇ À¯´ÏÄÚµå/UTF-8¿ë Å͹̳Π¿¡¹Ä·¹ÀÌÅÍÀÇ À¯´Ð½º Æ÷Æ®ÀÇ ÀÏÁ¾ÀÌ´Ù.
  • Wily ´Â Plan9ÀÇ Acme ¿¡µðÅ͸¦ À¯´Ð½º¿ëÀ¸·Î ±¸ÇöÇÑ °ÍÀÌ´Ù.
  • ucm-0.1Àº Juliusz ChroboczekJuliu sz ChroboczekÀÌ °³¹ßÇÑ À¯´ÏÄÚµå ¹®ÀÚ ÁöµµÀÌ´Ù. ÀÌ°ÍÀº À¯´ÏÄÚµå ¹®ÀÚ¸¦ ¼±ÅÃÇÏ°í ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î ºÙ¿©³ÖÀ» ¼ö ÀÖ°Ô ÇÏ´Â ÀÛÀº µµ±¸ÀÌ´Ù.
  • Serge Winitzki °¡ °³¹ßÇÑ txtbdf2ps´Â BDF Çȼ¿ ÆùÆ®µéÀ» »ç¿ëÇÏ¿© UTF-8 plaintext¸¦ Æ÷½ºÆ®½º Å©¸³Æ®·Î Ãâ·ÂÇÏ´Â ÀÏÁ¾ÀÇ Perl ½ºÅ©¸³Æ®ÀÌ´Ù.
  • FIGlet 2.2 ¶Ç´Â ±× ÀÌÈÄÀÇ ¹öÀüÀº ºí·Ï ±×·¡ÇÈ ¿ä¼Ò(block graphics elements)·Î½á ¸ð³ë½ºÆäÀ̽º ¹®ÀÚ(monospaced characters)¸¦ »ç¿ëÇÏ¿© Å« ±ÛÀÚ·Î ¹è ³Ê ÅؽºÆ®(banner text)¸¦ Ãâ·ÂÇÏ´Â µµ±¸ÀÇ ÀÏÁ¾ÀÌ´Ù.
  • Edmund Grimley Evans´Â UCS ÆùÆ® Áö¿øÀ» »ç¿ëÇÏ¿© BOGL ¸®´ª½º ÇÁ·¹ÀÓ¹öÅÍ ±×·¡ÇÈÀ» È®ÀåÇÏ¿´´Ù. ¶ÇÇÑ UCS ÆùÆ® Áö¿øÀ» ÀÌ¿ëÇÏ¿© btermÀ̶ó ºÒ¸®´Â °£´ÜÇÑ UTF-8 ÄÜ¼Ö Å͹̳Π¿¡¹Ä·¹ÀÌÅ͸¦ Á¦ ÀÛÇÏ¿´´Ù.

18. UTF-8À» Áö¿øÇϱâ À§Çؼ­ »ç¿ë°¡´ÉÇÑ ÆÐÄ¡´Â ¹«¾ùÀΰ¡?

  • Bruno HaibleÀº stty¿Í ¸®´ª½º Ä¿³Î tty ¹× groff µîÀ» À§ÇÑ ¿©·¯°¡Áö ÆÐÄ¡¸¦ ÁغñÇß´Ù.
  • Miyashita Hisashi´Â Emacs 20.6°ú ±× ÀÌ»óÀÇ ¹öÀüÀ» À§ÇÑ ¹®Àڼ º¯¿ª ÆÐÅ°ÁöÀÎ MULE-UCS ¸¦ ÀÛ¼ºÇß´Ù. ÀÌ°ÍÀº Mule ÀÎÄÚµù(Emacs¿¡¼­ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â)°ú ISO 1 0646 »çÀ̸¦ Àüȯ½Ãų ¼ö ÀÖ´Ù.
  • Otfried CheongÀº GNU Emacs¸¦ À§ÇÑ À¯´ÏÄÚµå ÀÎÄÚµù ÆäÀÌÁö¿¡, ¶Ç´Ù¸¥ Emacs ¹®ÀÚ¼ÂÀ¸·Î utf-8À» µ¡ºÙÀÓÀ¸·Î½á ¸ðµç BMP¸¦ Áö¿øÇÏ´Â MULE-UCS¿¡ ´ëÇÑ ÀÏ Á¾ÀÇ È®Àå±â´ÉÀ» Á¦°øÇÑ´Ù. ±×°¡ ¸¸µç ÆäÀÌÁö´Â ¶ÇÇÑ MULE-UCS¸¦ À§ÇÑ ÂªÀº ¼³Ä¡ ¾È³»¼­¸¦ Æ÷ÇÔÇÑ´Ù.
  • Tomohiko Morioka´Â UTF-8 xemacs¸¦ À§ÇÑ ÆÐÄ¡¸¦ ³»³õ¾Ò´Ù.
  • Edmund Grimley Evans´Â À̸ÞÀÏ ÇÁ·Î±×·¥ÀÎ Mutt¿Í curses libraryÀÇ ÀÏÁ¾ÀÎ SlangÀ» À§ÇÑ UTF-8 ÆÐÄ¡¸¦ ÁغñÇß´Ù.

19. À¯´ÏÄڵ带 ´Ù·ç´Â »ç¿ë°¡´ÉÇÑ ºñ »ó¿ë(free) ¶óÀ̺귯¸®´Â Àִ°¡?

  • NEW: Ulrich Drepper°¡ °³¹ßÇÑ GNU C ¶óÀ̺귯¸® glibc 2.2.1 Àº UTF-8À» À§ÇÑ ¿Ïº®ÇÑ ¸ÖƼ-¹ÙÀÌÆ® ·ÎÄÉÀÏÀ» Áö¿øÇϱâ À§Çؼ­ À¯´ÏÄÚµå Á¤·Ä ¼ø¼­ ¾Ë°í¸®Áò(sorting order algorithm)À» Æ÷ÇÔÇϸç, ÀÌ°ÍÀº ´Ù¸¥ ¸¹ Àº ÀÎÄÚµùÀ¸·Î ´Ù½Ã ÄÚµùÇÒ ¼ö ÀÖ´Ù. ´ëºÎºÐÀÇ ¸®´ª½º ¹èÆ÷ÆǵéÀº °¡±î¿î ¹Ì·¡¿¡ glibc 2.2.1À» ¾÷±×·¹À̵åÇÒ °ÍÀ¸·Î ¿¹»óµÇÁö¸¸, °æÇè ¸¹Àº ¸®´ª½º »ç¿ëÀÚµéÀº glibc 2.2.1 ¼Ò½º¸¦ Á÷Á¢ ¼³Ä¡ÇÏ·Á°í ½ÃµµÇÒ ¼ö ÀÖ´Ù(ÀÌ·± ¹æ¹ýÀº ´Ù·ç ±â°¡ ¾î·Æ°í À§ÇèÇÏ´Ù). Bruno HaibleÀÇ glibc 2.2 ¼³Ä¡ Áöħ¼­ »Ó¸¸ ¾Æ´Ï¶ó Çö Àç ÁøÇà ÁßÀÎ °³¹ß »óȲ¿¡ ´ëÇÑ UlrichÀÇ TODO list¿Í CVS ¾ÆÄ«À̺긦 º¸µµ·Ï Ç϶ó.
  • À¯´ÏÄڵ带 À§ÇÑ ±¹Á¦ ÄÄ Æ÷³ÍÆ®.
  • Mark LeisherÀÇ wchar_ t Áö¿ø Å×½ºÆ® ÄÚµå(wchar_t support test code) ¹× UCData À¯ ´ÏÄÚµå ¹®ÀÚ ¼Ó¼º(UCData Unicode character property)°ú bidi ¶óÀ̺귯¸®
  • Bruno HaibleÀÇ libiconv ¹®Àڼ º¯È¯ ¶óÀ̺귯¸®´Â ÀÏÁ¾ÀÇ iconv()±¸Çö ÇÔ¼ö¸¦ Á¦°øÇϴµ¥ ÀÌ°ÍÀº ±¸Çö ÇÔ¼ö¸¦ Çϳªµµ °¡Áö°í ÀÖÁö ¾Ê°Å³ª ÇÔ¼ö·Î ±¸ÇöÇصµ À¯´ÏÄÚµå·ÎºÎÅÍ È¤Àº À¯´ÏÄÚµå·Î ÀüȯµÇÁö ¾Ê´Â ½Ã½ºÅÛÀ» À§ÇÑ °ÍÀÌ´Ù.
  • Bruno HaibleÀÇ libutf8Àº UTF-8 ¹®ÀÚ¿­À» ó¸®Çϱâ À§ÇÑ, ƯÈ÷ ¾ÆÁ÷ ÀûÀý ÇÑ UTF-8 ·ÎÄÉÀÏÀ» Á¦°øÇÏÁö ¾Ê´Â Ç÷§ÆûÀ» À§ÇÑ ¿©·¯°¡Áö ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù.
  • Tom TromeyÀÇ libunicode ¶óÀ̺귯¸®´Â Gnome µ¥½ºÅ©Å¾ ÇÁ·ÎÁ§Æ®ÀÇ ÀÏȯÀÌÁö¸¸, G nome°ú »ó°ü¾øÀÌ ºôµåÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¿©·¯°¡Áö ¹®ÀÚ Å¬·¡½º¿Í º¯È¯ ÇÔ ¼ö¸¦ Á¦°øÇÑ´Ù.( VS)
  • FriBidi´Â Unicode bidi ¾Ë°í¸®ÁòÀ» ºñ »ó¿ëÀ¸·Î ±¸ÇöÇÑ °ÍÀ̸ç Dov Grobgeld °¡ °³¹ßÇß´Ù.
  • ArabjoinÀº ¾Æ¶ø ¹®ÀÚ¿ë UTF-8 ÅؽºÆ®(Áö¿ª ¼ø¼­·Î´Â U+06xx ¾Æ¶ø¾î ºí·Ï¿¡ ÀÎÄÚµùµÈ´Ù )¸¦ ÀÔ·ÂÀ¸·Î ¹Þ¾ÆµéÀÌ°í, ¾Æ¶ø¾î glyph Á¶ÇÕÀ» ½ÇÇàÇϸç, ´«¿¡ º¸ÀÌ´Â ¼ø ¼­´ë·Î Á¤·ÄµÇ´Â 8ºñÆ® ¹è¼öÀÇ UTF-8 ½ºÆ®¸²À» Ãâ·ÂÇÏ´Â Roman Cryborra°¡ ¸¸µç ÀÛÀº Perl µµ±¸ÀÌ´Ù. ÀÌ°ÍÀº ¾Æ¶ø ¹®ÀÚ¸¦ ´Ù¸£°Ô Ãë±ÞÇÏ´Â °ÍÀÌ ¾Æ´Ï ¶ó ´Ü¼øÈ÷ ¸ðµç glyphÀ» ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊ ¼øÀ¸·Î Ãâ·ÂÇÏ´Â xterm ȤÀº yudi t¿Í °°Àº °£´ÜÇÑ À¯´ÏÄÚµå ·»´õ¸µ µµ±¸(renderer)·Î Æ÷¸ËÇßÀ» ¶§ ÀÐÀ» ¼ö ÀÖ´Â °á°ú¸¦ º¸¿©ÁØ´Ù.
  • NEW: Charlint´Â W3C ¹®ÀÚ ¸ðµ¨À» À§ÇÑ ¹®ÀÚ Ç¥ÁØÈ­ µµ±¸ÀÌ´Ù.
  • Markus KuhnÀÇ ºñ »ó¿ë wcwidth() ±¸Çö ÇÔ¼ö ´Â, C ¶óÀ̺귯¸®¿¡¼­ ¾î¶² ¹®ÀÚ³ª ¹®ÀÚ¿­ÀÌ UTF-8 Å͹̳Π¿¡¹Ä·¹ÀÌÅÍ ½ºÅ©¸°¿¡¼­ ¾ó¸¶³ª ¸¹Àº ¿­(column) À§Ä¡¸¦ Â÷ÁöÇÏ°í ÀÖ´ÂÁö ¾Ë¾Æ³»±â À§ÇÑ ÇÔ¼ö°¡ Á¦°øµÇÁö ¾Ê´Â Ç÷§Æû»óÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
  • Markus KuhnÀÇ º¯È¯ÅÇ(transtab) Àº À¯´ÏÄڵ忡¼­ ASCII³ª ¸î¸î 8ºñÆ® ¹®ÀÚ¼ÂÀ¸·Î º¯È¯Çϱâ Èûµç ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ¹®ÀÚ º¯È¯ Å×À̺íÀÌ´Ù. ÀÌ°ÍÀº À¯´ÏÄÚµå ¹®ÀÚµéÀ» À§ÇÑ Ä¡È¯ ¹®ÀÚ¿­¿¡ °üÇÑ ±¤¹üÀ§ÇÑ ¸ñ·ÏÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç »ç¿ëºÒ°¡´ÉÇÑ ¹®ÀÚµéÀ» ³ªÅ¸³»±â À§Çؼ­ »ç¶÷µéÀÌ À̸ÞÀÏÀ̳ª ŸÀڱ⿡¼­ »ç¿ëÇÏ´Â ´ëü Ç¥±â¹ý(fa llback notation)°ú ºñ½ÁÇÏ´Ù. ±× Å×À̺íÀº POSIX ·ÎÄÉÀÏ Á¤ÀÇ ÆÄÀÏ(POSIX locale definition file)¿¡ Æ÷ÇÔ½ÃÅ°±â À§Çؼ­ ISO/IEC TR 14652>ISO/IEC TR 14652 Æ÷¸ËÀ¸·Î µÇ¾î ÀÖ´Ù. </itemize> <!-- Á¦ 20 ÀåÀÇ ½ÃÀÛ --> <sect>¿©·¯°¡Áö X À§Á¬ ¶óÀ̺귯¸®¸¦ À§ÇÑ À¯´ÏÄÚµå Áö¿øÀÇ ÇöÀç »óȲÀº ¾î¶°ÇÑ°¡? <p> <itemize> <item><url url= name="Pango - Unicode and Complex Text P rocessing">Àº GTK+¿¡ ¿Ïº®ÇÑ Æ¯¼ºÀ» °®´Â À¯´ÏÄÚµå Áö¿øÀ» Ãß°¡Çϱâ À§ÇÑ ÇÁ·ÎÁ§Æ®ÀÇ ÀÏȯÀÌ´Ù.
  • Qt 2.0Àº Çö Àç *-ISO10646-1 ÆùÆ® »ç¿ëÀ» Áö¿øÇÏ°í ÀÖ´Ù.

20. UTF-8À» Áö¿øÇϱâ À§ÇØ ¾î¶² ÆÐÅ°Áö°¡ ÇöÀç °³¹ß ÁßÀΰ¡?

  • NEW: °íÀüÀûÀÎ vi ¿¡µðÅÍÀÇ ÀαâÀִ Ŭ·ÐÀÎ VimÀÇ ÃֽŠ¾ËÆÄ Å×½ºÆ® ¹öÀü 6.0s´Â ÇöÀç ¿ÍÀÌµå ¹®ÀÚ¿Í 2°³±îÁöÀÇ °áÇÕ ¹®ÀÚ¸¦ Áö¿øÇÔ°ú µ¿½Ã¿¡ UTF-8À» Áö¿øÇÑ´Ù. ÀÚ¼¼ÇÑ °ÍÀº Bram MoolenaarÀÇ announcement ¸¦ Àо¶ó.

21. ¼Ö¶ó¸®½º »ó¿¡¼­ UTF-8À» À§ÇÑ Áö¿øÀº ¾î¶»°Ô µ¿ÀÛÇϴ°¡?

Solaris 2.8¹öÀüºÎÅÍ ±× ÀÌÈÄ·Î UTF-8Àº Àû¾îµµ ºÎºÐÀûÀ¸·Î Áö¿øµÈ´Ù. UTF-8À» »ç ¿ëÇϱâ À§Çؼ­´Â UTF-8 ·ÎÄÉÀÏ Áß Çϳª¸¦ ¼³Á¤Ç϶ó. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°ÀÌ C ½©¿¡¼­ ÀÔ·ÂÇÑ´Ù.

setenv LANG en_US.UTF-8

ÇöÀç UTF-8 ÅؽºÆ®¸¦ ÀÔ·Â ¹× Ãâ·ÂÇϱâ À§Çؼ­ dtterm Å͹̳Π¿¡¹Ä·¹ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, mp print filter´Â Æ÷½ºÆ®½ºÅ©¸³Æ® ÇÁ¸°ÅÍ¿¡¼­ UTF-8 ÆÄÀÏÀ» Ãâ·ÂÇÒ °ÍÀÌ´Ù. en_US.UTF-8 ·ÎÄÉÀÏÀº Áö±ÝÀ¸·Î½á´Â Motif¿Í CDE µ¥½ºÅ©Å¾ ¾ÖÇø®ÄÉÀÌ¼Ç ¹× ¶óÀ̺귯¸®¿¡ ÀÇÇؼ­ Áö¿øµÇÁö¸¸, OpenWindows, XView ¹× OPENLOOK DeskSet ¾ÖÇø®ÄÉÀ̼ǰú ¶óÀ̺귯¸®¿¡ ÀÇÇؼ­´Â Áö¿øµÇÁö ¾Ê´Â´Ù.

´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÑ´Ù¸é, en_US.UTF-8 ·ÎÄÉÀÏ Áö¿ø À¥ ÆäÀÌÁöÀÇ Sun's Overview¸¦ Àо¶ó.

22. Æ÷½ºÆ® ½ºÅ©¸³Æ® glyph ¸íĪ(Postscript glyph names)>Àº ¾î¶»°Ô UCS ÄÚµå¿Í °ü·ÃµÇ¾î Àִ°¡?

Adobe»çÀÇ Unicode and Glyph Names °¡À̵带 Àо¶ó.

23. Àß Á¤ÀÇµÈ UCS subsetÀº Àִ°¡?

40000°³ÀÇ ¹®ÀÚ¸¦ °¡Áö´Â À¯´ÏÄڵ带 ¿Ïº®ÇÏ°Ô ±¸ÇöÇÏ´Â °ÍÀº °Å´ëÇÑ ÇÁ·ÎÁ§Æ®ÀÌ´Ù . ±×·¯³ª Àü°ú °°ÀÌ ´ÜÁö ¼ö¹é ¶Ç´Â ¼öõ ¹®ÀÚ¸¦ ±¸ÇöÇÏ´Â °Í°ú À¯´ÏÄÚµåÈ­¸¦ °ÅÄ£ ´Ü ¼øÇÑ ÇϳªÀÇ ÀÎÄÚµù¼Ó¿¡¼­ ¸ðµç ÇÊ¿äÇÑ ¹®ÀÚ¿¡ Á¢±ÙÇÏ´Â ´Ü¼øÇÔÀ» Áñ±â´Â °Íµµ Á¾Á¾ Áß¿äÇÏ´Ù(ƯÈ÷ À¯·´ ½ÃÀåÀ» À§Çؼ­). ¼ö¸¹Àº ´Ù¸¥ UCS ¼­ºê¼ÂµéÀº ÀÌ¹Ì È®¸³µÇ¾ú´Ù.

  • Windows Glyph List 4.0 (WGL4)´Â 8ºñÆ® MS-DOS, Windows, Mac ¹× ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®°¡ ¿¹Àü¿¡ »ç¿ëÇÑ ÀûÀÌ ÀÖ´Â ISO ÄÚµå ÆäÀÌÁö¸¦ ¸ðµÎ Áö¿øÇÏ´Â 650 ¹®ÀÚ·Î ±¸¼ºµÈ ¼ÂÀÌ´Ù. ¸ðµç Windows ÆùÆ®´Â ÇöÀç Àû¾îµµ WGL4 Àü ¸ñ·ÏÀ» Æ÷ÇÔÇÑ´Ù. WGL4´Â CEN MES-1( = WGL4 Å×½ºÆ® ÆÄÀÏ">)À» ¸ðµÎ Æ÷ÇÔÇÏ´Â ¼ÂÀÌ´Ù.
  • ¼¼°¡Áö À¯·´¿ë UCS ¼­ºê¼Â MES-1, MES-2 ¹× MES-3Àº À¯·´ Ç¥ÁØ À§¿øȸ CEN/TC304¿¡ ÀÇÇؼ­ CWA 13873 ¾È¿¡ Á¤ÀÇ µÇ¾ú´Ù.
    • MES-1Àº ´ÜÁö 335°¡Áö ¹®ÀÚ¸¦ °®´Â ¸Å¿ì ÀÛÀº ¶óƾ¾î ÇÏÀ§ ¹®ÀÚ¼ÂÀÌ´Ù. ÀÌ°ÍÀº Á¤È®ÇÏ°Ô ISO 6937¿¡¼­ º¼ ¼ö ÀÖ´Â ¸ðµç ¹®ÀÚ¿Í ÀÌ¿¡ ´õÇÑ EURO SIGNÀ» Æ÷ÇÔÇÑ´Ù. ÀÌ°ÍÀº ISO 8859ÀÇ 1,2,3,4,9,10,15 ºÎºÐÀÇ ¸ðµç ¹®ÀÚ¸¦ MES-1ÀÌ Æ÷ÇÔÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÁÖÀÇ: ¸¸¾à ¿©·¯ºÐÀÇ ¸ñÀûÀÌ ´ÜÁö °¡Àå ºñ¿ëÀÌ Àû°Ô µé°í °£´ÜÇÑ ÇÕ¸®ÀûÀÎ Áß¾Ó À¯·´¿ë UCS ÇÏÀ§ ¹®ÀÚ¼ÂÀ» Á¦°øÇÏ´Â °ÍÀ̶ó¸é, ³ª´Â MES-1¿¡ MES-1¿¡´Â ¾ø´Â Windows ÄÚµå ÆäÀÌÁö 1252ÂÊ¿¡¼­ º¼ ¼ö ÀÖ´Â ´ÙÀ½ÀÇ Áß¿äÇÑ 14°³ÀÇ ºÎ°¡ ¹®ÀÚµéÀ» ´õÇؼ­ ±¸ÇöÇÒ °ÍÀÌ´Ù: U+0192, U+02C6, U+02DC, U+2013, U+2014, U+201A, U+201E, U+2020, U+2021, U+2022, U+2026, U+2030, U+2039, U+203A.]
    • MES-2´Â 1052°³ÀÇ ¹®ÀÚµéÀ» °¡Áø ¶óƾ¾î/±×¸®½º¾î/Å°¸±¾î/¹Ì±¹¾î/±×·çÁö¾Æ¾î¸¦ À§ÇÑ ÇÏÀ§ ¹®ÀÚ¼ÂÀÌ´Ù. ÀÌ°ÍÀº À¯·´(´ÜÁö EU ±¹°¡µé¸¸ÀÌ ¾Æ´Ñ)°ú À¯·´ÀÇ ¾ð¾î¸¦ »ç¿ëÇÏ´Â ³ª¶ó¿¡¼­ »ç¿ëµÇ´Â ¸ðµç ¾ð¾î¿Í ¸ðµç 8ºñÆ® ÄÚµå ÆäÀÌÁö¸¦ Æ÷ÇÔÇÑ´Ù. ÀÌ°ÍÀº ¶ÇÇÑ ±â¼ú ¹®¼­¿¡¼­ »ç¿ëÇÏ´Â ÀûÀº ·®ÀÇ ¼öÇÐ ±âÈ£¸¦ ´õ Æ÷ÇÔÇÏ°í ÀÖ´Ù. MES-2´Â MES-1À» Æ÷ÇÔÇÏ´Â ¹®ÀÚ¼ÂÀÌ´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ´ÜÁö À¯·´ ȤÀº ¼­¹æ ½ÃÀåÀ» À§Çؼ­ °³¹ßÇÏ°í ÀÖ´Ù¸é, MES-2´Â ÃßõÇÒ ¸¸ÇÑ ¹®ÀÚ¼ÂÀÌ´Ù. [ÁÖÀÇ: ¾û¶×ÇÑ »çȸ-Á¤Ä¡Àû ÀÌÀ¯¶§¹®¿¡, MES-2¿¡¼­ ´ÙÀ½ÀÇ 8°¡Áö WGL4¹®ÀÚµéÀº Æ÷ÇÔÇÏÁö ¾Ê°í ÀÖ´Ù: U+2113, U+212E, U+2215, U+25A1, U+25AA, U+25AB, U+25CF, U+25E6. ¸¸¾à ´ç½ÅÀÌ MES-2¸¦ ±¸ÇöÇÑ´Ù¸é, Àý´ëÀûÀ¸·Î ºüÁø 8°¡Áö WGL4¹®ÀÚµéÀ» Ãß°¡Çؾ߸¸Çϸç, ±×·± ÈÄ¿¡¾ß ¹®ÀÚ¼ÂÀ» WGL4¿Í ÀÏÄ¡½Ãų ¼ö ÀÖ´Ù.
    • MES-3´Â 2819¹®ÀÚ¸¦ °®´Â ¸Å¿ì Æ÷°ýÀûÀÎ UCS ¼­ºê¼ÂÀÌ´Ù. ÀÌ°ÍÀº ´Ü¼øÈ÷ À¯·´ »ç¿ëÀڵ鿡°Ô´Â ÀáÀç·ÂÀÌ ÀÖ´Â ¸Å¿ì À¯¿ëÇÑ UCS ¸ðÀ½(collection)À» ¸ðµÎ Æ÷ÇÔÇÑ´Ù. ÀÌ°ÍÀº ´õ¿í´õ ¿­Á¤ÀûÀÎ °³¹ßÀÚµéÀ» À§ÇÑ °ÍÀÌ´Ù. MES-3Àº MES-2¿Í WGL4¸¦ Æ÷ÇÔÇÏ´Â ¹®ÀÚ¼ÂÀÌ´Ù.
  • JIS X 0221-1995´Â ÀϺ»¾î »ç¿ëÀÚµéÀ» À§ÇÑ 7°³ÀÇ °ãÄ¡Áö ¾Ê´Â UCS ¼­ºê¼ÂÀ» ¸í½ÃÇÏ°í ÀÖ´Ù.
    • ±âº»ÀûÀÎ ÀϺ»¾î(6884°³ ¹®ÀÚ): JIS X 0208-1997, JIS X 0201-1997
    • ÀϺ»¾î ºñ-Ç¥ÀÇ ¹®ÀÚ(Non-ideographic) º¸¿Ï(1913°³ ¹®ÀÚ): JIS X 0212-1990 ºñ-°£Áö ¹®ÀÚ(non-kanji) ¹× ¿©·¯°¡Áö ´Ù¸¥ ºñ-°£Áö ¹®ÀÚ
    • ÀϺ»¾î Ç¥ÀÇ ¹®ÀÚ º¸¿Ï 1(918°³ ¹®ÀÚ): ¸î¸î JIS X 0212-1990 °£Áö ¹®ÀÚ
    • ÀϺ»¾î Ç¥ÀÇ ¹®ÀÚ º¸¿Ï 2(4883°³ ¹®ÀÚ): ³ª¸ÓÁö JIS X 0212-1990 °£Áö ¹®ÀÚ
    • ÀϺ»¾î Ç¥ÀÇ ¹®ÀÚ º¸¿Ï 3(8745°³ ¹®ÀÚ): ³ª¸ÓÁö Áß±¹¾î ¹®ÀÚ
    • ¿ÏÀüÇÑ ÆøÀ» °®´Â Alphanumeric(94°³ ¹®ÀÚ): ȣȯ¼ºÀ» À§Çؼ­
    • Àý¹ÝÀÇ ÆøÀ» °®´Â īŸī³ª ¹®ÀÚ(63°³ ¹®ÀÚ): ȣȯ¼ºÀ» À§Çؼ­
  • ISO 10646 Ç¥ÁØÀº ±×°ÍÀÇ Àüü ¸ñ·ÏÀ», ¼­ºê¼ÂÀ» Á¤ÀÇÇÏ°í ±â·ÏÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â ¼ö¸¹Àº ¹­À½µé(collections)·Î ³ª´«´Ù. À¯´ÏÄڵ嵵 ºñ½ÁÇÏÁö¸¸, ¶È°°Áö´Â ¾ÊÀº À¯´ÏÄÚµå Ç¥ÁØÀÇ °¢ ¼½¼Ç¿¡ ´ëÀÀÇÏ´Â ¹®ÀÚµéÀÇ ºí·Ï (blocks of characters)À» Á¤ÀÇÇÏ°í ÀÖ´Ù.
  • RFC 1815´Â ISO 10646À» ¸í¹éÈ÷ ÁÁ¾ÆÇÏÁö ¾ÊÀ¸¸ç JIS X 0221-1995¸¦ Àß ¸ð¸£´Â ´©±º°¡¿¡ ÀÇÇؼ­ 1995³â¿¡ ¾²¿©Áø ÀÏÁ¾ÀÇ ¸Þ¸ðÀÌ´Ù. ±×°ÍÀº 14°³ÀÇ UCS ¹­À½À¸·Î ±¸¼ºµÈ "ISO-10646-J-1"À̶ó°í ºÒ¸®´Â ¾î¶² UCS ¼­ºê¼Â¿¡ °üÇØ ³íÀÇÇÏ°í ÀÖÀ¸¸ç, 14°³ÀÇ UCS ¹­À½ÀÇ ¸î¸îÀº JIS X 0208°ú ¾ù°¥¸°´Ù. ÀÌ°ÍÀº °ú°Å 1995³âÀÇ ÀϺ»ÆÇ Windows NT ¹öÀü¿¡ Æ÷ÇÔµÈ ¾î¶² Ưº°ÇÑ ÆùÆ®°¡ ¿ì¿¬È÷ ¸¸µé¾îÁ³´Ù´Â °ÍÀÌ´Ù. RFC 1815´Â ¿À´Ã³¯ ¿ÏÀüÈ÷ ½Ã´ë¿¡ µÚ¶³¾îÁ³À¸¸ç ÀûÀýÇÏÁö ¾ÊÀ¸¸ç, ¹«½ÃÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÌ´Ù.
  • Markus KuhnÀº ucs-fonts.tar.gzÀÇ README ÆÄÀÏ¿¡¼­ ¼¼°¡Áö UCS ¼­ºê¼Â TARGET1, TARGET2 ¹× TARGET3À» Á¤ÀÇÇÏ°í Àִµ¥ À̵éÀº ´ëÀÀÇÏ´Â MES ¼­ºê¼ÂÀ» ¾Ë¸Â°Ô È®ÀåÇÑ °ÍÀ̸ç, xtermÀÇ ÆùÆ® ÆÐÅ°Áö¸¦ ¿Ï¼ºÇϱâ À§ÇÑ ±Ù°£ÀÌ µÇ¾ú´Ù.

Markus KuhnÀÇ À¯´Ï¼Â(uniset) Perl ½ºÅ©¸³Æ®´Â ±¸ÇöÇÑ ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î µ¿ÀÛÇÏ´Â Áö¸¦ üũÇϱ⸦ ¿øÇϰųª »õ·Î¿î ÇÁ·Î±×·¥À» ¸¸µé°í ½Í¾îÇÏ´Â »ç¶÷µéÀ» À§ÇÏ¿© UCS ¼­ºê¼Â À§¿¡ Æí¸®ÇÑ »ê¼ú °è»ê ¼Â(set)À» »ç¿ëÇÏ´Â °ÍÀ» Çã¿ëÇÏ°í ÀÖ´Ù.

24. X11 R6.4 ½ºÆå°ú À¯´ÏÄڵ忡 ¾î¶² ¹®Á¦Á¡ÀÌ Àִ°¡?

X11 R6.4 ¸±¸®Áî(1998)´Â X ÄÁ¼Ò½Ã¿òÀÌ °³¹ßÇÑ X11 À©µµ¿ì ½Ã½ºÅÛ Ç¥ÁØ¿¡ ¸Â´Â »ùÇà ÇÁ·Î±×·¥ÀÇ ÃֽŠ¹öÀüÀÌ´Ù. ´ëºÎºÐÀÇ ÇöÀçÀÇ X11 Ç¥ÁØ°ú »ùÇà ÇÁ·Î±×·¥Àº À¯´Ð½º ȯ°æ¿¡¼­ÀÇ À¯´ÏÄڵ忡 ´ëÇÑ ±¤¹üÀ§ÇÑ °ü½ÉÀ» ÀÏÂïºÎÅÍ ºÒ·¯ÀÏÀ¸Å°°í ÀÖ´Ù.

  • UTF-8 À߶󳻱â¿Í ºÙÀ̱â: ICCCM Ç¥ÁØÀº ¼±ÅÃÇÑ UCS ¹®ÀÚ¿­À» º¯È¯ÇÏ´Â ¹æ¹ýÀ» ¸í½ÃÇÏÁö ¾Ê°í ÀÖ´Ù. ¸î¸î º¥´õµéÀº ÇöÁ¸ÇÏ´Â COMPOUND_TEXT ¸ÞÄ«´ÏÁò (CTEXT)¿¡ UTF-8À» ¶Ç ÇϳªÀÇ ÀÎÄÚµùÀ¸·Î½á Ãß°¡ÇÏ¿´´Ù. ÀÌ°ÍÀº Àû¾îµµ ´ÙÀ½°ú °°Àº ÀÌÀ¯¿¡¼­ ÁÁÀº ÇØ°áÃ¥ÀÌ ¾Æ´Ï´Ù.

    • CTEXT´Â ´Ù¼Ò º¹ÀâÇÑ ISO 2022 ¸ÞÄ«´ÏÁòÀÌ´Ù. ±×·¯³ª À¯´ÏÄÚµå´Â CTEXT¿¡ ¶Ç ´Ù¸¥ Ãß°¡ Ç׸ñÀ» Á¦°øÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ²ûÂïÇÑ ¸ÞÄ«´ÏÁò Àüü¸¦ ÈξÀ °£´ÜÇÏ°í ´õ¿í Æí¸®ÇÏ¸ç µ¿µîÇÑ ´É·ÂÀ» °®´Â ¹«¾ð°¡·Î ´ëüÇÒ ±âȸ¸¦ Á¦°øÇÑ´Ù.
    • Á¸ÀçÇÏ´Â ¸¹Àº ¾ÖÇø®ÄÉÀ̼ǵéÀº CTEXT¸¦ ÅëÇØ ¼±ÅÃÇÑ °Í°ú Åë½ÅÇÒ ¼ö ÀÖÁö¸¸, »õ·Ó°Ô Ãß°¡ÇÑ UTF-8 ¿É¼ÇÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. CTEXT »ç¿ëÀÚ´Â °ú°ÅÀÇ ISO 2022 ÀÎÄÚµùÀ» »ç¿ëÇÒ °ÍÀÎÁö »õ·Î¿î UTF-8 ÀÎÄÚµùÀ» »ç¿ëÇÒ °ÍÀÎÁö¸¦ °áÁ¤Çؾ߸¸ ÇÑ´Ù. ±×·¯³ª µÎ°¡Áö¸¦ µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö´Â ¾ø´Ù. ´Ù½Ã ¸»Çؼ­, CTEXT¿¡ UTF-8À» ½ÅÁßÈ÷ Ãß°¡ÇÑ´Ù°í ÇÒÁö¶óµµ Á¸ÀçÇÏ´Â CTEXT ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇÏÀ§ ¹öÀü°úÀÇ È£È¯¼ºÀº ±úÁø´Ù.
    • ÇöÀçÀÇ CTEXT ½ºÆåÀº ¼½¼Ç 6¿¡¼­ ¸íÈ®ÇÏ°Ô ´ÙÀ½°ú °°ÀÌ UTF-8ÀÇ Ãß°¡¸¦ ±ÝÁöÇÏ°í ÀÖ´Ù. "'´Ù¸¥ ÄÚµù ½Ã½ºÅÛ'¿¡ µî·ÏµÈ ISO´Â ÄÄÆÄ¿îµå ÅؽºÆ®¿¡¼­ »ç¿ëµÇÁö ¾Ê´Â´Ù; È®ÀåµÈ ¼¼±×¸ÕÆ®µéÀº ISO 2022°¡ ¾Æ´Ñ ÀÎÄÚµù(non-2022 encodings)À» À§ÇÑ À¯ÀÏÇÑ ¸ÞÄ«´ÏÁòÀÌ´Ù."

    Juliusz ChroboczekÀº ¼Ó¼º Çü(property type)°ú ¼±Åà ¸ñÇ¥(selection target)·Î »ç¿ëÇÒ ¼ö ÀÖ´Â »õ·Î¿î UTF8_STRING ¿ä¼Ò¸¦ ÀÌ¿ëÇÏ¿© UTF-8ÀÇ ¼±Åà ¿©ºÎ¸¦ ´Ù·ç±â À§ÇÑ ICCMÀÇ È®Àå¿¡ ´ëÇؼ­, " À¯´ÏÄÚµå ÅؽºÆ®ÀÇ ³»ºÎ-Ŭ¶óÀ̾ðÆ® ±³È¯¿¡ °üÇÑ Á¦¾È ÃʾÈ(Inter-Client Exchange of Unicode Text draft proposal)"À» ÀÛ¼ºÇÏ¿´´Ù.

  • ¾µ¸ð ¾ø´Â ÆùÆ® µ¥ÀÌÅÍ ±¸Á¶µé: ÆùÆ®ÀÇ ¹ÌÅÍ ´ÜÀ§ ±æÀÌ¿¡ °üÇÑ Á¤º¸¸¦ ³ªÅ¸³»±â À§ÇØ »ç¿ëÇÏ´Â Xlib API¿Í X11 ÇÁ·ÎÅäÄÝ µ¥ÀÌÅÍ ±¸Á¶´Â Èñ¹ÚÇÏ°Ô ºÐÆ÷µÈ ÆùÆ®µé(sparsely populated fonts)À» ó¸®ÇÒ ¶§´Â ´ë´ÜÈ÷ ¾µ¸ð°¡ ¾ø´Ù. X Ŭ¶óÀ̾ðÆ®¿¡¼­ ¾î¶² ÆùÆ®¿¡ ¾×¼¼½ºÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº XLoadQueryFont() ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀ̸ç, ÀÌ°ÍÀº XFontStruct¸¦ À§ÇØ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ¼­¹ö·ÎºÎÅÍ ±×°ÍÀÇ ³»¿ëÀ» ºÒ·¯¿Â´Ù. XFontStruct´Â °¢°¢ 12¹ÙÀÌÆ®ÀÎ XCharStruct ¿£Æ®¸®(entry)ÀÇ ¹è¿­À» Æ÷ÇÔÇÑ´Ù. ÀÌ·¯ÇÑ ¹è¿­ÀÇ Å©±â´Â ¸¶Áö¸· ¹®ÀÚÀÇ ÄÚµå À§Ä¡ - ù ¹ø° ¹®ÀÚÀÇ ÄÚµå À§Ä¡ + 1 ÀÌ´Ù. ±×·¯¹Ç·Î U+0020°ú U+FFFD¸¦ ¸ðµÎ Æ÷ÇÔÇÏ´Â ÀÓÀÇÀÇ "*-iso10646-1" ÆùÆ®´Â 65502 ¿ä¼Ò¸¦ °®´Â XCharStruct ¹è¿­ÀÌ ÇÒ´çµÇµµ·Ï ÇÒ °ÍÀÌ´Ù(½ÉÁö¾î´Â CharCell ÆùÆ®µé¿¡ ´ëÇؼ­µµ °°Àº °á°ú°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù). ÀÌ°ÍÀº ±× ÆùÆ®°¡ ¿ÀÁ÷ 1000°³ÀÇ ¹®ÀÚµéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù ÇÒ Áö¶óµµ 786 ų·Î¹ÙÀÌÆ®ÀÇ Å¬¶óÀ̾ðÆ®-»çÀÌµå ¸Þ¸ð¸®(client-side memory)¿Í µ¥ÀÌÅÍ Àü¼ÛÀ» ÇÊ¿ä·Î ÇÔÀ» ÀǹÌÇÑ´Ù.

    Áö±Ý±îÁö °Å·ÐÇØ¿Ô´ø ÀÏ°ú °ü·ÃµÈ ¸î¸î ÁÖº¯ÀÇ Àϵé:

    • XFree86 4.0¿¡ ÇÔ²² Á¦°øµÇ´Â ºñ-¾Æ½Ã¾Æ±Ç¿ë -misc-fixed-*-iso10646-1 ÆùÆ®µéÀº U+31FF ÀÌ»óÀÇ ¿µ¿ª¿¡¼­´Â ¾î¶°ÇÑ ¹®ÀÚµµ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº ÇÊ¿ä ÇÑ ¸Þ¸ð¸®·®À» 153 ų·Î¹ÙÀÌÆ®±îÁö·Î Á¦ÇÑÇÑ´Ù. ÀÌ°ÍÀº ¿©ÀüÈ÷ ÁÁÁö ¾ÊÀº ÀÏÀÌÁö¸¸, ±×·¸°Ô ³ª»Û Àϵµ ¾Æ´Ï´Ù.(BDF ÆÄÀÏ¿¡¼­ ³ªÅ¸³ª´Â U+31FF ÀÌ»óÀÇ ¿µ¿ª¿¡¼­ À¯¿ëÇÑ ¹® ÀÚµéÀÌ ½ÇÁ¦·Î Á¸ÀçÇϸç, ÀÌ·¯ÇÑ ¹®Á¦°¡ ÇØ°áµÉ ±× ³¯¸¸À» ±â´Ù¸®°í ÀÖ´Ù. ±×·¯³ª ±× µéÀº ÇöÀç´Â -1·Î ÀÎÄÚµùµÇ¸ç, µû¶ó¼­ X ¼­¹ö¿¡ ÀÇÇؼ­ ¹«½ÃµÈ´Ù.)
    • Bruno HaibleÀº ¼­¹ö¿¡¼­ Ŭ¶óÀ̾ðÆ®·Î ¾ÐÃà½ÃÄÑ XCharStruct¸¦ Àü¼ÛÇÏ°í, °°Àº ÆùÆ®¸¦ ·ÎµåÇÏ´Â ´Ù¼öÀÇ »ç¿ëÀÚ¸¦ À§ÇÑ XlibÀÇ °øÀ¯ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â, XFree86 4.0À» À§ÇÑ BIGFONT ÇÁ·ÎÅäÄÝ È®ÀåÀÚ(extension)¸¦ ÀÛ¼ºÇÏ¿´´Ù.

    ÀÌ·¯ÇÑ ÁÖº¯ÀÇ ÀϵéÀº XFontStruct°¡ µå¹°°Ô »ç¿ëÇÏ´Â ÆùÆ®µé¿¡°Ô ÀûÇÕÇÏÁö ¾Ê´Ù´Â ÀáÀçÀûÀÎ ¹®Á¦¸¦ ÇØ°áÇØ ÁÖÁö ¾Ê´Â´Ù. ±×·¯³ª ±×µéÀº API ȤÀº Ŭ¶óÀ̾ðÆ® ¼Ò½º ÄÚµå ¸¦ º¯°æÇÒ ÇÊ¿ä ¾øÀÌ Áß¿äÇÑ È¿À² Çâ»óÀ» Á¦°øÇÑ´Ù. ÇÑ°¡Áö ÁøÁ¤ÇÑ ÇØ°áÃ¥Àº XFontStr uct¸¦ ¹è¿­°ú´Â ´ëÁ¶ÀûÀ¸·Î ¹®ÀÚ¸¦ ÀúÀåÇÏ´Â Á¤·Ä ¸®½ºÆ®³ª Çؽà Å×À̺íÀ» Æ÷ÇÔÇÏ´Â ÈξÀ À¯¿¬ÇÑ ¹«¾ð°¡·Î È®Àå ȤÀº ´ëüÇÏ´Â °ÍÀÌ µÉ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ XFontStructÀÇ Àç ¼³°è´Â ¶ÇÇÑ °áÇÕ ¹®ÀÚ¿Í Àεµ ¹®ÀÚÀÇ ¿¬°á¼±À» µ¿½Ã¿¡ »ç¿ëÇϱâ À§ÇØ ±ÞÈ÷ ÇÊ¿äÇÑ ´ë ºñÃ¥ÀÌ µÉ °ÍÀÌ´Ù.

  • Keysyms: Áö±Ý±îÁö Á¤ÀÇµÈ ¹Ù·Î´Â keysyms´Â ´ÜÁö ¾ÆÁÖ ÀÛÀº Unicode ¸ñ·Ï ¸¸À» Æ÷ÇÔÇÑ´Ù. Markus KuhnÀº U-00000000 ºÎÅÍ U-00FFFFFF±îÁöÀÇ ¹üÀ§³»ÀÇ ¸ðµç UCS ¹®ÀÚ´Â 0x01000000 ºÎÅÍ 0x01ffffff±îÁöÀÇ ¹üÀ§³»ÀÇ keysym °ªÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù°í Á¦¾ÈÇÏ¿´´Ù(±×¸®°í xterm¿¡¼­ ÀÌ°ÍÀ» ±¸ÇöÇÏ¿´´Ù). ÀÌ°ÍÀº ³Î¸® ÀÎÁ¤µÇ°í ÀÖ´Â °Íó·³ Àüü 31ºñÆ®ÀÇ UCS °ø°£À» Áö¿øÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ÀÌ°ÍÀº UTF-16°ú ±× ÀÌ»óÀÇ ¸ðµå¿¡¼­ ³ªÅ¸³¾ ¼ö ÀÖ´Â U-0010FFFF±îÁöÀÇ ¸ðµç ¹®ÀÚµéÀ» Áö¿øÇϸç, ISO°¡ ´õ Å« ¿µ¿ªÀÇ UCS ÄÚµåµéÀ» ÇÒ´çÇÒ °Í °°Áö´Â ¾Ê´Ù(»ç½Ç ¹Ì·¡¿¡´Â ISO 10646À¸·ÎºÎÅÍ U-0010FFFF¸¦ ³Ñ´Â ÄÚµå °ø°£À» ¾ø¾ÖÀÚ´Â Á¦¾ÈÀÌ ÀÖ´Ù). µû¶ó¼­ À¯´ÏÄÚµå ¹®ÀÚ U+ABCD¸¦ ¾ò±â À§Çؼ­´Â keysyms 0x0100abcd¸¦ Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ °íÀüÀûÀÎ keysyms¿Í UCS(X11 Ç¥ÁØ¿¡ µé¾î°¡¾ß¸¸ ÇÒ °Í ÁßÀÇ ÇϳªÀÌ´Ù) »çÀ̸¦ º¯È¯½ÃÅ°±â À§ÇØ Á¦¾ÈµÈ Å×ÀÌºí¿¡ °üÇÑ ¼Ò½º ÄÚµåÀÎ xtermÀÇ keysym2ucs.c ÆÄÀÏÀ» º¸¶ó. Markus´Â ¶ÇÇÑ X ÇÁ·ÎÅäÄÝ Ç¥ÁØ ºÎ·Ï A: KEYSYM ÀÎÄÚµùÀÇ °³Á¤ÆÇ ÃÊ¾È À» ÀÛ¼ºÇß´Ù. ±×°ÍÀº UCS »óÈ£ ÂüÁ¶ Å×À̺íÀ» Ãß°¡ÇÑ KEYSYM ÀÎÄÚµù( PDF)ÀÌ´Ù.
  • °áÇÕ ¹®ÀÚ: X11ÀÇ ¼¼ºÎ »çÇ×À» º¸¸é °áÇÕ ¹®ÀÚ¸¦ ¾î¶² ½ÄÀ¸·Îµµ Áö¿øÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÆùÆ® Á¤º¸¿¡´Â ¾×¼¾Æ®¸¦ ÀÚµ¿À¸·Î ºÙÀ̴µ¥ ÇÊ¿äÇÑ µ¥ÀÌÅÍ°¡ ºÎÁ·ÇÏ´Ù(¿¹µé µé¸é, TeX¿¡´Â ¸ðµç ÆùÆ®¿¡ ¾×¼¾Æ®¸¦ ÀÚµ¿À¸·Î ºÙÀÌ´Â ±â´ÉÀÌ ÀÖ´Ù). ´Ù¾çÇÑ »ç¶÷µéÀÌ À×Å©¸¦ °¡Áö°í ¹®ÀÚÀÇ ¿ÞÆí¿¡ ÆøÀÌ ¾ø´Â ¹®ÀÚ(zero-width characters)¸¦ »ç¿ëÇÏ´Â °¡Àå °£´ÜÇÑ °áÇÕ ¹®ÀÚ °ãÃľ²±â(simplest overstriking combining characters)¸¦ ±¸ÇöÇϱâ À§Çؼ­ ½ÇÇèÀ» ÇØ¿Ô´Ù. ±×·¯³ª ÀÌ°ÍÀ» ±¸ÇöÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ¼¼ºÎ »çÇ×Àº ½ÇÁ¦·Î ¸í½ÃµÇÁö ¾Ê°í ÀÖ´Ù. (¿¹¸¦ µé¸é, CharCell°ú ¸ð³ë½ºÆäÀ̽º ÆùÆ®(monospaced fonts)´Â ÆøÀÌ ¾ø´Â ¹®ÀÚ¸¦ Çã¿ëÇÏÁö ¾Ê´Â´Ù.) ±×·¯¹Ç·Î ÀÌ°ÍÀº ¾ÆÁ÷ Æø³Ð°Ô È®¸³µÈ ±â¼úÀÌ ¾Æ´Ï´Ù.
  • ¿¬°á¼±: Àεµ ¼­Ã¼´Â ¿¬°á¼± ġȯÀ» Áö¿øÇÏ´Â ÆùÆ® ÆÄÀÏ Æ÷¸ËÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ°ÍÀº Áö±ÝÀ¸·Î½á´Â °áÇÕ ¹®ÀÚó·³ X11ÀÇ ¼¼ºÎ »çÇ׿¡ Æ÷ÇԵǾî ÀÖÁö ¾Ê´Ù.
  • UTF-8 ·ÎÄÉÀÏ: X11 R6.4 »ùÇÃÀº Áö±ÝÀ¸·Î½á´Â UTF-8 ·ÎÄÉÀÏÀ» À§ÇÑ ¾î¶°ÇÑ Áö¿øµµ Æ÷ÇÔÇÏÁö ¾Ê°í ÀÖ´Ù. °ú°ÅÀÇ UTF ·ÎÄÉÀÏÀº ÀÖÁö¸¸, ±×°ÍÀº ºÒ¿ÏÀüÇϸç ÇöÀç¿¡´Â ¾µ¸ð¾ø´Â UTF-1 ÀÎÄÚµùÀ» »ç¿ëÇÑ´Ù. UTF-8 ·ÎÄÉÀÏÀ» ±¸ÇöÇϱâ À§Çؼ­´Â ÀϹÝÀûÀÎ ÀÎÄÚµù º¯È¯ °úÁ¤ÀÌ ÇÊ¿äÇÒ »Ó¸¸ ¾Æ´Ï¶ó ¿©·¯°¡Áö Å°º¸µå µî·Ï(entry) ¹æ¹ý, Á¸ÀçÇÏ´Â ISO 8859¿Í keysym Å°º¸µå¸¦ UCS·Î ¸ÅÇÎÇÏ¿© ¹èÄ¡Çϱâ, ÇÕ¼º Å° (compose key)¸¦ À§ÇÑ ±Øµµ·Î È®ÀåµÈ Áö¿ø ¹× Çѱ۰ú ÇÑÀÚ µî·Ï Áö¿ø(entry support)À» ÀÔ·ÂÇϱâ À§ÇÑ ÀÓÀÇ ¹®ÀÚÀÇ ISO 14755 16Áø¼ö µî·ÏÀÌ ÇÊ¿äÇÏ´Ù.
  • »ùÇà ±¸Çö(sample implementation): xterm, xfontsel, À©µµ¿ì ¸Å´ÏÀúµî°ú °°Àº °íÀüÀûÀΠǥÁØ ÅøÀ» À§ÇÑ À¯´ÏÄÚµå Áö¿ø »Ó¸¸ ¾Æ´Ï¶ó ¼ö¸¹Àº ±¤¹üÀ§ÇÑ À¯´ÏÄÚµå Ç¥ÁØ ÆùÆ®µéÀÌ »ùÇà ±¸Çö¿¡ Ãß°¡µÇ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ·¯ÇÑ ºÎºÐ¿¡ °üÇÑ ¸î¸î ¿¬±¸µéÀÌ ÀÌ¹Ì XFree86 ³»ºÎ¿¡¼­ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç ±× ¹ÛÀÇ ÀϵéÀº ÀÌÀüÀÇ Áß¿ä »ç¾ÈµéÀÌ ¾ÆÁ÷ ÇØ°áµÇÁö ¾Ê¾Ò´Ù´Â »ç½Ç·Î ÀÎÇØ ÇöÀç ¿¬±âµÇ°í ÀÖ´Ù.

ÀÌ·¯ÇÑ À̽´µéÀ» ¿¬±¸ÇÏ´Â ÀÛ¾÷ÀÌ ÁøÇà ÁßÀΰ¡? ¸ð¸£°Ú´Ù. ³ª´Â ¸î ÀÏ¿¡ °ÉÃÄ X ÄÁ ¼Ò½Ã¿òÀ» °ø½ÄÀûÀ¸·Î °è½ÂÇÑ ´ÜüÀÌÀÚ X11 Ç¥ÁØ°ú »ùÇà ±¸ÇöÀÇ °ü¸®ÀÚ ¿ªÇÒÀ» ÇÏ´Â Op engroupÀÎ X.Org¿¡ Á¢ÃËÇÏ·Á ½ÃµµÇßÁö¸¸, ±×µé·ÎºÎÅÍ ¾ÆÁ÷ ¾µ¸ð ÀÖ´Â ¾î¶°ÇÑ ´ë´äµµ ¾òÁö ¸øÇß´Ù(X.OrgÀÇ ÇÑ ¸â¹öÀÎ XFree86¿¡µµ Á¢ÃËÇßÁö¸¸, ¿ª½Ã ´ë´äÀ» ¾òÁö ¸øÇß´Ù).

25. ÀÌ·± ¹®Á¦¿¡ °üÇÑ ÁÁÀº ¸ÞÀϸµ ¸®½ºÆ®´Â Àִ°¡?

¹Ýµå½Ã unicode@unicode.org ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇؾ߸¸ ÇÑ´Ù. ÀÌ°ÍÀÌ Ç¥ÁØ ÀÛ ¼ºÀÚ¿Í ¸¹Àº ´Ù¸¥ µµ»çµéÀÇ ÀÇ°ßÀ» µè±â À§ÇÑ ÃÖ¼±ÀÇ ¹æ¹ýÀÌ´Ù. ±âºÎ±ÝÀ» ³»°íÀÚ ÇÑ´Ù ¸é, unicode-request@ unicode.org¿¡ "subscribe"¶ó´Â Á¦¸ñ°ú ÇÔ²² "subscribe YOUR@EMAIL.ADDRESS unicode" ¶ó´Â ³»¿ëÀ¸·Î ¸Þ½ÃÁö¸¦ º¸³»¸é µÈ´Ù.

¶ÇÇÑ GNU/Linux ½Ã½ºÅÛ¿¡¼­ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ´õ¿í Çâ»óµÈ UTF-8 Áö¿øÃ¥À» ¿¬±¸Çϱâ À§Çؼ­ ¾²ÀÌ´Â linux-utf8@nl.linux.org ¸ÞÀÏ ¸µ ¸®½ºÆ®°¡ ÀÖ´Ù. ±âºÎ±ÝÀ» ³»°íÀÚ ÇÑ´Ù¸é, "subscribe linux-utf8"À̶ó´Â ÇÑ ÁÙÀÇ ³»¿ëÀ» Àû¾î majordomo@nl.linux. org·Î ¸Þ½ÃÁö¸¦ º¸³»¶ó. ¶ÇÇÑ linux-utf8 archive¸¦ ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù.

Xlib¿Í X ¼­¹ö¿¡¼­ÀÇ À¯´ÏÄÚµå Áö¿ø¿¡ °üÇÑ ÀûÀýÇÑ ¸ÞÀϸµ ¸®½ºÆ®´Â fonts@xfree86.org¿Í i18n@xfree86.org°¡ ÀÖ´Ù.

26. ´õ¿í »ó¼¼ÇÑ Âü°í ÀÚ·á

³ª´Â ÀÌ ¹®¼­¿¡ »õ·Î¿î ³»¿ëÀ» ¸Å¿ì ÀÚÁÖ Ãß°¡ÇÒ °ÍÀÌ´Ù. ±×·¯¹Ç·Î ±ÔÄ¢ÀûÀ¸·Î ÀÌ ¹®¼­¸¦ üũÇϰųª ´ç½Å¿¡°Ô À̸ÞÀÏ·Î ÅëÁöÇØ ÁÖ´Â Netminder¸¦ ÀÌ¿ëÇÏ¿© ¹®¼­ÀÇ º¯È­¸¦ üũÇ϶ó. ´õ¿í Çâ»óµÈ UTF-8 Áö¿øÀ» À§ÇÑ freeware community¿¡¼­ÀÇ ±¤°í »Ó¸¸ ¾Æ´Ï¶ó Á¦¾ÈÀº ¸Å¿ì ȯ¿µÇÑ´Ù. ¸®´ª½º¿¡¼­ UTF-8À» »ç¿ëÇÏ´Â °ÍÀº ¸Å¿ì ³¸¼± ÀÏÀÌ´Ù. ±×·¯¹Ç·Î ´ÙÀ½ ¸î ´Þ ÈÄÀÇ ÀÌ ¹®¼­¿¡ ¸¹Àº ÁøÀüÀÌ ÀÖÀ» °ÍÀÌ´Ù.

Ulrich Drepper, Bruno Haible, Robert Brady, Shuhei Amakawa¿Í °¡Ä¡ ÀÖ´Â ºñÆòÀ» ÇØÁØ ´Ù¸¥ ¸¹Àº À̵é°ú Áö¿øÀ» ÇØÁØ SuSE GmbH, Nürnberg¿¡°Ô Ưº°ÇÑ °í¸¶¿òÀ» Ç¥ÇÑ´Ù.

Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> created 1999-06-04 -- last modified 2001-02-06 --http://www.cl.cam.ac.uk/ ~mgk25/unicode.html


ID
Password
Join
Someone is speaking well of you.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-11-04 12:06:46
Processing time 0.0015 sec