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

You are not allowed to 'backlinks'


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
Even the boldest zebra fears the hungry lion.


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.0016 sec