Posted by ±è´öÅ on July 05, 1997 at 10:21:40:
In Reply to: À¯´ÏÄÚµå¿Í UTF-8, ±×¸®°í ÀÚ¹Ù... posted by ±è´öÅ on July 02, 1997 at 10:01:40:
Jungshik Shin wrote:
> ÀÌ ºÎºÐÀº Á¶±Ý ¿ÀÇØÀÇ ¼ÒÁö°¡ ÀÖ´Â µí ÇÕ´Ï´Ù. ¿ö³« ÀÌ ºÎºÐÀÇ ¿ë¾î°¡
> RFC³ª Ç¥ÁØ ¹®¼¸¶´Ù Á¦°¢°¢ÀÌ¾î¼ È¥µ¿À» ÃÊ·¡ÇÒ ¼ö ¹Û¿¡ ¾ø±âB ÇÕ´Ï´Ù.
> À̸¦ Á¤¸®Çϱâ À§ÇÑ ³ë·ÂÀÇ ÀϺÎÀÎ RFC 2130¿¡ ºñÃß¾î º¼ ¶§ À§ÀÇ ´Ü¶ôÀº
> Á»´õ Á¶½É½º·´°Ô ¿ë¾î¸¦ »ç¿ëÇؼ ¾²¿´À¸¸é ÁÁÁö ¾ÊÀ»±î »ý°¢ÇÕ´Ï´Ù.
>
> RFC 2130ÀÇ Á¤ÀÇ¿¡ ÀÇÇϸé KS C 5601, KS C 5636(US-ASCII), Unicode µîÀº
> ¹®ÀÚ¼Â(Coded Character Set=CCS)ÀÔ´Ï´Ù. ÀÌ ¹®ÀÚ¼Â(CCS)À» ±¸Ã¼ÀûÀ¸·Î
> Ç¥ÇöÇϱâ À§ÇØ octet¿¡ ´ëÀÀ½ÃÅ°´Â ÀÎÄÚµù ¹æ¹ý(Character Encoding
> Scheme=CES)ÀÌ EUC-KR, ISO-2022(-KR), UTF-8(UTF-FSS), UTF-7,UTF-1 µîÀÌ
> ÀÖ°ÚÁö¿ä. ¾ÕÀÇ 2°³´Â KS C 5601°ú KS C 5636(US-ASCII)¶ó´Â 2°³ÀÇ
> ¹®ÀÚ¼Â(CCS)À» ÀÎÄÚµùÇÏ´Â ¹æ¹ý(CES)ÀÌ°í µÚÀÇ ¼¼ °³´Â
> Unicode(ISO-10646¿¡¼ BMP)¶ó´Â ¹®ÀÚ¼Â(CCS)À» ÀÎÄÚµùÇÏ´Â
> ¹æ¹ý(CES)ÀÌ°ÚÁö¿ä.
>
> µû¶ó¼, "KS C 5601À» ´ëüÇÏ´Â ÀÎÄÚµùÀ¸·Î UTF-8À» ¾´´Ù"´Â Ç¥ÇöÀº ¼·Î
> °³³äÀûÀ¸·Î ´Ù¸¥ Â÷¿øÀÇ µÎ °¡Áö¸¦ -KS C 5601Àº CCSÀÌ°í UTF-8Àº CESÀ̹ǷÎ
> - °°Àº Â÷¿ø¿¡ ³õÀº °ÍÀ¸·Î º¸ÀÔ´Ï´Ù. ¸¶Âù°¡Áö·Î 'Unicode¿Í UTF-8À» °°Àº
> À§Ä¡¿¡ ³õ°í ºñ±³ÇÏ¿© ¾î´À ÇÑ ÂÊÀÌ ´Ù¸¥ Âʺ¸´Ù ¾î¶² ¿ëµµ¿¡ º¸´Ù
> ÀûÇÕÇϹǷΠ´õ ¿ì¿ùÇÏ´Ù '°í ÇÏ´Â °Íµµ È¥µ¿ÀÇ ¼ÒÁö°¡ ÀÖ½À´Ï´Ù. UTF-8Àº
> µ¶¸³ÀûÀÎ ¹®ÀÚ¼Â(CCS)ÀÌ ¾Æ´Ï¶ó UnicodeÀÇ ¿©·¯ °¡Áö ÀÎÄÚµù ¹æ¹ý(CES) Áß
> Çϳª¿¡(À§¿¡ ÀûÀ¸½Å´ë·Î 'File System Safe'ÇÑ Æ¯¼ºÀ» Áö³æ±â¿¡
> UTF-FSS¶ó°íµµ ºÒ¸®¸ç ÆÄÀÏ ÀúÀå µî¿¡ ÀûÇÕÇÑ CES·Î ¾Ë°í
> ÀÖ½À´Ï´Ù) ºÒ°úÇϴϱî¿ä. À§ÀÇ ±Û¿¡¼ Unicode¶õ ´Ü¾î¸¦ Unicode¶õ CCSÀÇ
> '°¡Àå ÀÚ¿¬½º·¯¿î ÀÎÄÚµù' ¹æ¹ýÀÇ Àǹ̷Π»ç¿ëÇϽŠµí ÇÕ´Ï´Ù. Áï, "Unicode¸¦
> network byte order¿¡ µû¶ó µÎ °³ÀÇ octetÀÇ ³ª¿·Î Ç¥ÇöÇÑ ÀÎÄÚµù
> ¹æ¹ý(CES)"ÀÇ Àǹ̷Π»ç¿ëÇϽŠ°ÍÀ¸·Î ÁüÀÛÇÕ´Ï´Ù. ¿ª½Ã, KS C 5601µµ
> »ç¶÷µéÀÌ ÈçÈ÷ ¾²µíÀÌ KS C 5601°ú KS C 5636(US-ASCII)¶õ 2 °³ÀÇ CCS¸¦
> ÀüÀÚ´Â G1¿¡ ÈÄÀÚ´Â G0¿¡ µÎ°í G0Àº GL¿¡ G1Àº GR¿¡ °íÁ¤½ÃŲ (ISO-2022 µî¿¡
> ´ëÇØ ÀüÇô ¸ð¸£´Â ÀÌ¶óµµ ½±°Ô »ý°¢ÇÒ ¼ö ÀÖ´Â 'ÀÚ¿¬½º·¯¿î') ÀÎÄÚµù
> ¹æ¹ýÀÇ Àǹ̷Π¾²¼ÌÀ¸¸®¶ó º¾´Ï´Ù. ÇÏÁö¸¸, ÀÌ°ÍÀº ÀÌ¹Ì À§ÀÇ °ýÈ£ ¾È¿¡¼
> ÁöÀûÇϽŠ¹Ùó·³ EUC-KR·Î Á¤È®È÷ ºÎ¸£´Â °ÍÀÌ ÀÌ·± Á¾·ùÀÇ ³íÀǸ¦ ÇÒ ¶§¿¡´Â
> È¥µ¿ÀÇ ¿©Áö°¡ ¾øÀ¸¸®¶ó°í º¾´Ï´Ù.
ÀÌ·± º¹ÀâÇÑ ¹®Á¦¿¡ ²ø·Á(?) µé¾î°¡°í ½ÍÁö´Â ¾Ê¾ÒÁö¸¸ ¤°í ³Ñ¾î°¡¾ß µÇ´Â
¹®Á¦·Î »ý°¢µÇ¾î ¸»¾¸ÇϽŠRFC 2130À» µÚÁ®º¸¾Ò½À´Ï´Ù.
°ü·Ã ¸µÅ©°¡ À߸øµÇ¾ú´õ±º¿ä.
Âü°í¹®Çå [1]¿¡ °¡º¸´Ï °ü·Ã ³»¿ëÀ» º¼ ¼ö°¡ ÀÖ¾ú½À´Ï´Ù.
======= RFC 2130 ========
RFC 2130Àº ÀÎÅÍ³Ý È¯°æ¿¡ ÀûÇÕÇÏ°í ȣȯ¼º¿¡ ¹®Á¦¸¦ ´ú ÀÏÀ¸Å°´Â octect
(8 bit¸¦ ÀǹÌ, `¹ÙÀÌÆ®'ÀÇ Àǹ̺¸´Ù ´õ ¾ö¹ÐÇÔ)¸¦ ±âÁØÀ¸·Î Çؼ ¹®ÀÚ
¼¼Æ® ¹× ÀÎÄÚµù°ú °ü·ÃµÈ »çÇ×À» ´ÙÀ½°ú °°ÀÌ 3 ºÎºÐÀ¸·Î ³ª´©¾î ³õ¾Ò°í,
°¢Á¾ ÀÎÅÍ³Ý Ç¥ÁØÀ» Á¤ÀÇÇÏ´Â µ¥ ÀÖ¾î¼ »ç¿ëµÇ´Â ¿ë¾î, keywordµîÀÇ
ÀǹÌÀÇ ¾ö¹Ð¼º°ú ÀÏÄ¡¼º, ȣȯ¼ºÀ» ±âÇϱâ À§ÇÑ °ÍÀÌ ¸ñÀûÀÏ °ÍÀ̸ç, ¸ðµç
ÇÁ·Î±×·¥°ú ÀÚ·á°¡ ÀÎÅͳݸ¸À» ¸ñÀûÀ¸·Î ÇÏÁö ¾Ê´Â ÀÌ»ó, ÀÌ ºÐ·ù¿¡ ¸ÂÁö
¾Ê´Â ÀǹÌÀÇ ¿ë¾î°¡ ³ª¸§´ë·ÎÀÇ °¡Ä¡¸¦ °¡Áö°í ÀÌ¿Í ±¸ºÐµÇ¾î »ç¿ëµÉ ¼ö
ÀÖ´Â °ÍÀ̶ó »ý°¢µË´Ï´Ù.
1. A Coded Character Set (CCS) is a mapping from a set of abstract
characters to a set of integers. Examples of coded character sets
are ISO 10646 [ISO-10646], US-ASCII [ASCII], and ISO-8859 series
[ISO-8859].
¿©±â¼ Á¤ÀÇÇÏ´Â Coded Character SetÀÇ Àǹ̴ °¢ Ãß»óÀûÀÎ ¹®ÀÚ¿¡
´ëÇÏ¿© Á¤¼ö°ªÀ» ÇÒ´çÇÏ´Â °ÍÀÌ°í, Á¤¼ö¶ó´Â °³³äÀº ¸î ºñÆ®·Î Ç¥ÇöÇÑ´Ù´Â
°Í±îÁö Á¤ÀÇÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î, ÀÎÄÚµù°ú´Â ¾Æ¹«·± °ü·ÃÀÌ ¾ø´Â Ãß»óÀûÀÎ
°³³äÀ¸·Î º¼ ¼ö°¡ ÀÖ½À´Ï´Ù.
2. A Character Encoding Scheme (CES) is a mapping from a Coded Character
Set or several coded character sets to a set of octets. Examples of
Character Encoding Schemes are ISO 2022 [ISO-2022] and UTF-8 [UTF-8].
A given CES is typically associated with a single CCS; for example,
UTF-8 applies only to ISO 10646.
¸»¾¸ÇϽŠ´ë·Î EUC-KRÀº 2°³ÀÇ CCS (KS C 5601°ú KS C 5636)ÀÇ
CESÀÔ´Ï´Ù. ¶ÇÇÑ, UTF-8Àº ISO 10646 CCSÀÇ CESÀÔ´Ï´Ù.
KS C 5601À» °¢ Á¤¼ö ÄÚµå °ª¿¡ ´ëÇÏ¿© 2 ¹ÙÀÌÆ® °ªÀ¸·Î ¸ÅÇÎÇÑ´Ù°í
°¡Á¤ÇÑ´Ù¸é CES·Îµµ º¼ ¼ö ÀÖ°ÚÀ¸³ª, ±×¿Í °°ÀÌ »ç¿ëµÇ´Â °æ¿ì°¡ °ÅÀÇ
¾øÀ¸¹Ç·Î (¾Æ½ºÅ°¹®ÀÚµµ ¼¯¾î¼ ¾²¹Ç·Î), KS C 5601À̶ó°í¸¸ ÇÑ´Ù¸é
CES¸¦ ÀǹÌÇÏ´Â °ÍÀ̶ó°í º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
¶ÇÇÑ, EUC-KRÀÌ ÇØ´çÇÏ´Â KS C 5601°ú KS C 5636ÀÇ ÇÕÁýÇÕÀ»
ÀǹÌÇÏ´Â CCS·Îµµ º¼ ¼öµµ ÀÖ°ÚÀ¸³ª, ÇØ´ç CCS¸¦ ÀǹÌÇÏ´Â
¿ë¾î°¡ ÀÌ¹Ì ÀÖÀ¸¹Ç·Î EUC-KRÀ̶ó°í¸¸ ÇÒ ¶§´Â CES¸¦ ÀǹÌÇÏ´Â °ÍÀÌ
Àû´çÇÒ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, ÀÌ´Â ÇØ´ç ¿ë¾î ¹× keyword°¡ »ç¿ëµÇ´Â
context¿¡ ÀÇÇØ °áÁ¤µÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.
Âü°í¹®Çå [1]À» º¸¸é,
``Also, in MIME, the Coded Character Set and Character Encoding
Scheme are specified by the Charset parameter to
the Content-Type header field, and Transfer Encoding Syntax is
specified by the Content-Transfer-Encoding header field.''
Áï, MIME¿¡¼´Â charset °ªÀº CCS¿Í CES µÑ´Ù ÀǹÌÇÏ´Â keywordÀ̾î¾ß
ÇϹǷÎ, EUC-KRÀÌ »ç¿ëµÈ °æ¿ì¿¡´Â ±× Àǹ̰¡ ``CCS´Â KS C 5601°ú
KS C 5636ÀÇ ÇÕÁýÇÕÀ» ÁöÁ¤ÇÑ °ÍÀÌ°í, CES´Â EUC-KR ÀÎÄÚµùÀÌ
³ªÅ¸³»µíÀÌ (NULL, 0) ~ (DEL, 127)Àº ÇØ´ç 1 ¹ÙÀÌÆ®·Î ¸ÅÇνÃÅ°°í,
(first_ksc5601_char, 0x2121) ~ (last_ksc5601_char, 0x7d7e)˼
±× Äڵ尪À» x¶ó Çϸé, x + 0x8080À» network byte order·Î 2 ¹ÙÀÌÆ®·Î
¸ÅÇνÃÅ°´Â °ÍÀ» ÀǹÌÇÑ´Ù.''¶ó°í ÇØ´ç Ç¥ÁØ ¹®¼¿¡ ¸í±âÇÒ °ÍÀ» ÃßõÇÏ´Â
Àǵµ·Î Æľǵ˴ϴÙ.
¿ì¸®³ª¶ó¿¡¼ ÇöÀç ³í¶õÀÌ µÇ°í ÀÖ´Â ISO-2022-KRÀÇ °æ¿ìµµ
MIME charsetÀ¸·Î ÁöÁ¤µÈ´Ù¸é ¸¶Âù°¡Áö·Î ``CCS´Â KS C 5601 ¹× KS C
5636ÀÇ ÇÕÁýÇÕÀ» ÁöÁ¤ÇÑ °ÍÀÌ°í, CES´Â ISO-2022-KRÀÌ ³ªÅ¸³»´Â CES¸¦
ÁöÁ¤ÇÑ °ÍÀÌ´Ù.''¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Î Á¤ÀÇÇØ¾ß °ÚÁö¿ä.
±×·¯³ª, À¯´ÏÄÚµå 2.0ÀÌ ÀǹÌÇÏ´Â °¡Àå ÀϹÝÀûÀÎ Àǹ̴ ISO 10646 BMP
¹× plane 1 ~ plane 16ÀÇ ¹®ÀÚ¸¦ 16 ºñÆ® ȯ°æÀ¸·Î ÀÎÄÚµùÇÏ´Â scheme
À̶ó´Â Àǹ̰¡ °ÇϹǷÎ, RFC 2130ÀÇ Á¤ÀǸ¦ µû¸¥´Ù¸é CCS·Îµµ CES·Îµµ
º¸±â ¾î·Æ´Ù°í º¸°í ÀÖ½À´Ï´Ù.
3. Transfer Encoding Syntax
is frequently necessary to transform encoded text into a format
which is transmissible by specific protocols. The Transfer Encoding
Syntax (TES) is a transformation applied to character data encoded
using a CCS and possibly a CES to allow it to be transmitted.
Examples of Transfer Encoding Syntaxes are Base64 Encoding [Base64],
gzip encoding, and so forth.
TES´Â CCS ¹× CES¿Í´Â ´Ù¼Ò µ¶¸³ÀûÀ̸ç ƯÁ¤ ÇÁ·ÎÅäÄÝÀÌ ÀÌÇØÇÏ°í
ó¸®ÇÒ »Ó ÀÏ¹Ý »ç¿ëÀÚ¿¡°Ô´Â µå·¯³ªÁö ¾Ê´Â ÀÎÄÚµùÀ» ÀǹÌÇÏ´Â °ÍÀ¸·Î
CES¿Í ±¸ºÐµÇ´Â °Í °°½À´Ï´Ù.
ÇÏÁö¸¸, `possibly a CES'¶ó°í µÇ¾î ÀÖ´Â Á¡ÀÌ Á» ºñ³í¸®ÀûÀÎ °ÍÀ¸·Î
º¸ÀÌ´Â ±º¿ä.
CCS¿Í CES µÑ´Ù Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¸é, ¾ö¹ÐÇÏ°Ô octect stream
(°£´ÜÇÏ°Ô ¸»Çϸé, ¹ÙÀÌÆ® ¿)À¸·Î º¯È¯ÇÒ ¼ö ¾ø°í, ±×·¸´Ù¸é, Base64
³ª gzip ÀÎÄÚµù ¶ÇÇÑ ºÒ°¡´ÉÇϱ⠶§¹®ÀÔ´Ï´Ù.
==== À¯´ÏÄÚµå 2.0ÀÇ Á¤ÀÇ =========
Âü°í¹®Çå [2]ÀÇ ÆäÀÌÁö 1-1À» ÀοëÇϸé,
``The Unicode Standard is a fixed-width, uniform encoding scheme for
written characters and text.
... Áß·« ...
The Unicode Standard is modeled on the ASCII character set, but uses a
16-bit encoding to support full multilingual text.''
Áï, À¯´ÏÄÚµå 2.0Àº 16 ºñÆ® ÀÎÄÚµùÀÌ °¡Àå Á¤È®ÇÑ Àǹ̶ó´Â °ÍÀÔ´Ï´Ù.
16 ºñÆ®°¡ ³ªÅ¸³»´Â ÄÚµå °ªÀ¸·Î Ãß»óÀûÀÎ ¹®ÀÚ¿ÍÀÇ ¸ÅÇÎÀ» Á¤ÀÇÇÏ´Â
°ÍÀ¸·Î º¼ ¼ö ÀÖ´Ù¸é CCS¶ó°íµµ º¼ ¼ö ÀÖ°ÚÀ¸³ª, ¹®Á¦´Â surrogate
areaÀÇ µÎ°³ÀÇ À¯´ÏÄÚµå °ªÀ¸·Î ÇϳªÀÇ Ãß»óÀûÀÎ ¹®ÀÚ¸¦ ³ªÅ¸³½´Ù´Â
°ÍÀÔ´Ï´Ù. ÀÌ surrogate areaÀÇ °ªÀº ISO-10646ÀÇ plane 1 ~ 16ºÎºÐ¿¡
ÇØ´çÇÏ´Â ¹®ÀÚ (ISO-10646ÀÇ ºÎºÐÁýÇÕ)·Î ¸ÅÇÎµÇ°Ô µË´Ï´Ù. µû¶ó¼, ±×
Äڵ尪À» Á¤¼ö·Î Ç¥ÇöÇÏ°Ô µÇ¸é 0 ~ 65535ÀÇ ¹üÀ§¸¦ ³Ñ¾î°¡°Ô µË´Ï´Ù.
ÀÌ·± ÀÌÀ¯·Î, ISO 10646 BMP¿Í À¯´ÏÄڵ带 µ¿ÀϽÃÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
CES·Îµµ º¼ ¼ö ¾ø´Â ÀÌÀ¯´Â, 16 ºñÆ® ÀÎÄÚµùÀ̹ǷÎ, À¯´ÏÄÚµå ÄÚµå °ªÀÇ
»óÀ§ ¹ÙÀÌÆ®¿Í ÇÏÀ§ ¹ÙÀÌÆ®°¡ ¾î¶² ¼ø¼·Î ÀúÀå ¹× Àü¼ÛµÉÁö¸¦
Á¤ÀÇÇÏÁö ¾Ê°í, °¢ ½Ã½ºÅÛ¿¡ ÀûÇÕÇÑ ¼ø¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ °ÍÀÔ´Ï´Ù.
±×·¡¼, °íÁ¤µÈ octect streamÀ¸·Î ¸¸µé¾î ³¾ ¼ö ¾øÀ¸¹Ç·Î, 8 bit
ÀÎÄÚµùÀÌ µÉ ¼ö ¾ø°í µû¶ó¼ CESÀÇ Á¤ÀÇ¿¡ ºÎÇÕÇÏÁö ¸øÇÕ´Ï´Ù.
Âü°í¹®Çå [2]ÀÇ ÆäÀÌÁö 3-1À» º¸¸é, ¹ÙÀÌÆ® ¼ø¼¿¡ ´ëÇÑ ´ëÇÑ
¾î´À Á¤µµÀÇ ¾ð±ÞÀÌ ÀÖÁö¸¸, ¿ÏÀüÇÑ °ÍÀ̶ó°í º¸±â ¾î·Æ½À´Ï´Ù.
µû¶ó¼, À¯´ÏÄÚµå + network byte order (big endian)À̶ó°í ¸»ÇÑ´Ù¸é
ISO-10646ÀÇ ºÎºÐÁýÇÕ CCS¿ÍÀÇ ¸ÅÇÎÀ» Á¤ÀÇÇÏ´Â CES¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Unicode ¶ó´Â ¿ë¾î¸¦ ISO-10646ÀÇ ±× ºÎºÐÁýÇÕ CCS¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Îµµ
¾²ÀÏ ¼ö°¡ ÀÖ°ÚÁö¸¸, ÀÌ´Â Unicode¶ó´Â ¿ë¾î°¡ ÇÔÃàÇÏ´Â ÀǹÌÀÇ ÀϺο¡
Áö³ªÁö ¾Ê´Â °ÍÀ̹ǷÎ, Unicode°¡ ±×¿Í °°Àº CCS¸¦ ³ªÅ¸³»´Â °ÍÀ¸·Î
°íÁ¤½Ãų ¼öµµ ¾ø½À´Ï´Ù. È¥¶õÀ» ¸·±â À§Çؼ´Â ¹º°¡ ´Ù¸¥ ¿ë¾î¸¦
¸¸µé¾î »ç¿ëÇÏ¿© ÇØ´ç CCS¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Î »ç¿ëÇÏ´Â °ÍÀÌ Àû´çÇÒ
°ÍÀ¸·Î »ý°¢µÉ »ÓÀÔ´Ï´Ù.
¶ÇÇÑ, 8 ºñÆ® ÀÎÄÚµù ¹æ¹ýÀÌ 16 ºñÆ® ÀÎÄÚµù ¹æ¹ýº¸´Ù ´õ ±¸Ã¼ÀûÀ̶ó°í
º¸Áö´Â ¾ÊÀ¸¸ç, ´ÜÁö °¡Á¤Çϴ ȯ°æÀÌ ´Ù¸¥ °ÍÀ̹ǷÎ, ¹®ÀÚ ÀÚ·á°¡ 16
ºñÆ® ȯ°æ°ú 8 ºñÆ® ȯ°æÀ» ³Ñ³ªµé ¶§, ¹®Á¦°¡ ¹ß»ýÇÒ ¼ÒÁö¸¦ ¾È°í ÀÖ´Â
°ÍÀ¸·Î ÆľÇÇÏ°í ÀÖ½À´Ï´Ù.
ÀÌ´Â 7 ºñÆ® ȯ°æÀ» °¡Á¤ÇÏ´Â ISO-2022-KRÀÌ 8 ºñÆ® ȯ°æÀ» °¡Á¤ÇÏ´Â
EUC-KRº¸´Ù ´õ ±¸Ã¼ÀûÀ̶ó°í ¸»ÇÏÁö´Â ¾Ê´Â ÀÌÀ¯¿Í °°½À´Ï´Ù.
¹°·Ð, ÀÎÄÚµù ¹æ¹ýÀÌ °¡Á¤ÇÏ´Â ºñÆ® ¼ö°¡ ÀûÀ» ¼ö·Ï ȣȯ¼º¿¡ ¹®Á¦°¡
ÀûÁö¸¸ ³»ºÎÀûÀ¸·Î ó¸®ÇÏ´Â ÀÚ·áÀÇ Çü½ÄÀ¸·Î´Â ºÒÆíÇØÁö´Â °ÍÀ¸·Î
º¸¾Æµµ ÁÁÀ» °ÍÀÔ´Ï´Ù.
µû¶ó¼, À¯´ÏÄÚµå¿Í UTF-8Àº µÑ´Ù ÀÎÄÚµùÀ̹ǷÎ, ÇÁ·Î±×·¡¹Ö ÇÏ´Â
»ç¶÷ÀÇ ÀÔÀå¿¡¼´Â ÀûÀýÇÑ ÀÎÄÚµùÀ» »ç¿ëÇÏ¿© »óȲ¿¡ ¸Â°Ô ¼±ÅÃÇÏ¿©
»ç¿ëÇÏ´Â ¹®Á¦ÀÏ °ÍÀÔ´Ï´Ù.
À¯´ÏÄÚµå ÀÎÄÚµùÀ» »ç¿ëÇÒ °æ¿ì¿¡´Â, ¹ÙÀÌÆ® ¼ø¼°¡ ¹®Á¦°¡ µÇÁö ¾Ê´Â
°æ¿ì¿¡´Â ÀÇ¹Ì ÀÖ´Â ÀÎÄÚµù ¹æ¹ýÀ̱⠶§¹®ÀÔ´Ï´Ù.
(Áï, °°Àº ¹ÙÀÌÆ® ¼ø¼¸¦ °¡Á¤Çϴ ȯ°æ»çÀÌÀÇ ÀÚ·á ÀúÀå, ±³È¯ ¹×
¹ÙÀÌÆ® ¼ø¼¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Â ÀûÀýÇÑ ¹æ¹ýÀÌ Ã¤¿ëµÉ °æ¿ìµîµî.
°¡·É, À¯´ÏÄڵ忡¼´Â 0xFEFF¶ó´Â °ªÀ» ¹ÙÀÌÆ® ¼ø¼ Ç¥½Ä (Byte Order
Mark)¶ó°í ÇÏ¿© ÀڷḦ ÀÐÀº ÂÊ¿¡¼ 0xFFEF¶ó°í ÀÐÈ÷¸é, ¼·Î °¡Á¤ÇÏ´Â
¹ÙÀÌÆ® ¼ø¼°¡ µÚÁýÇû´Ù°í ÆÇ´Ü, ¹ÙÀÌÆ® ¼ø¼¸¦ µÚÁý¾î¼ Àеµ·Ï
ÇÏ°í ÀÖ½À´Ï´Ù.)
À¯´ÏÄÚµå¿Í UTF-8À» ºñ±³ÇÑ °ÍÀº 16 ºñÆ® ÀÎÄÚµù ¹æ¹ýÀ¸·Î¼ÀÇ
À¯´ÏÄÚµå ÀÎÄÚµù ¹× À¯´ÏÄÚµå + network byte orderµîÀ» ¸ðµÎ Æ÷ÇÔÇÏ°í,
ÀÌµé ¹æ¹ý°ú UTF-8°ú ºñ±³ÇØ º¼ ¶§, UTF-8ÀÌ ¾ÈÀüÇÏ°í ÀÕÁ¡ÀÌ ¸¹´Ù¶ó´Â
°ÍÀ» ¸»ÇÏ·Á´Â Àǵµ¿´½À´Ï´Ù. ±×·¯³ª, ÀÌ¹Ì RFC 2130¿¡¼ UTF-8À»
Ç¥ÁØ ÀÎÄÚµùÀ¸·Î ÃßõÇÏ°í ÀÖ´õ±º¿ä.
ÀÎÄÚµù ¹æ¹ýÀ¸·Î¼ÀÇ À¯´ÏÄڵ带 ÀǹÌÇÑ´Ù¸é UTF-16À̶ó°í ÇÏ´Â °ÍÀÌ ´õ
¾ö¹ÐÇßÀ» °ÍÀÔ´Ï´Ù.
µû¶ó¼, Á¦°¡ ÀǵµÇÏ°íÀÚ Çß´ø°ÍÀ» Á» ´õ ¾ö¹ÐÇÏ°Ô ³ªÅ¸³½´Ù¸é,
- KS C 5601Àº ÇѱÛÀ» ´Ù ¸ø ³ªÅ¸³»´Â µî ¹®Á¦°¡ ¸¹¾Æ ISO 10646 ¹®ÀÚ
¼¼Æ® (CCS)·Î ÀüÀÌÇÏ¿©¾ß ÇÑ´Ù.
- À̶§, ÀÎÄÚµù ¹æ¹ýÀ¸·Î UTF-16ÀÌ »ç¿ëµÉ ¼ö ÀÖÀ¸³ª,
-- ¹ÙÀÌÆ® ¼ø¼¿¡ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ°í,
-- ±âÁ¸ ¾Æ½ºÅ° ¹®¼¿ÍÀÇ È£È¯¼ºÀÌ ¹®Á¦°¡ µÇ¸ç,
-- ¾Æ½ºÅ° ¹®¼ÀÇ °æ¿ì, ¹®¼ÀÇ Å©±â°¡ 2¹è°¡ µÇ¸ç,
-- ¾Æ½ºÅ° ±â¹ÝÀÇ ±âÁ¸ ȯ°æ (¿î¿µÃ¼Á¦, ÇÁ·Î±×·¥µî)°ú Ãæµ¹Çϸç,
-- Â÷ÈÄ, À¯´ÏÄÚµåÀÇ 4 ¹ÙÀÌÆ® È®ÀåÆÇÀ̶ó°í º¼ ¼ö ÀÖ´Â ISO-8859
UCS-4¿Íµµ ±×´ë·Î ȣȯµÇ´Â °ÍÀÌ ¾Æ´Ï´Ù.
µû¶ó¼, ÀÌ¿Í °°Àº À̽´°¡ ¹®Á¦°¡ µÇÁö ¾Ê´Â °æ¿ì¿¡ ÇØ´çÇÏ´Â
³»ºÎÀûÀÎ ¹®¼ÀÇ Çü½Ä ¹× ³»ºÎÀûÀΠó¸® ¿ëµµ·Î UTF-16À» »ç¿ëÇÏ°í,
ÀÌ¿Ü¿¡´Â, ÀÌ·¯ÇÑ ¹®Á¦¸¦ Çϳªµµ °®Áö ¾Ê´Â UTF-8À» »ç¿ëÇÏ¿©
ÀÎÄÚµùÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
¶ó´Â °ÍÀ̾ú½À´Ï´Ù.
=== ÀÚ¹Ù¿¡¼ÀÇ ÀÎÄÚµù À̸§ =====
¾ð±ÞµÈ ÀÌÀ¯·Î, ÀÚ¹Ù¿¡¼ 16 ºñÆ® ÀÎÄÚµù À̸§À¸·Î Unicode ¹× 8
ºñÆ® ÀÎÄÚµùÀ¸·Î¼ KSC5601, EUCJIS, 8859_1, UTF8µîµî ¿©·¯°¡Áö°¡
µ¿±ÞÀ¸·Î »ç¿ëµÇ´Â °ÍÀº À߸øµÈ °Ô ¾Æ´Ï¶ó »ý°¢µË´Ï´Ù.
¹°·Ð, ¿©±â¼ EUC-KRÀ» »ç¿ëÇÏÁö ¸øÇÏ°í, ´ë½Å KSC5601À» »ç¿ëÇؾ߸¸ ÇÏ´Â
°ÍÀº ´Ù¼Ò ³í¶õ°Å¸®°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
±×·¯³ª, EUC-KRÀÌ ¿ì¸®³ª¶ó¿¡¼ Æø³Ð°Ô ¹Þ¾Æµé¿©Áö°í ÀÖ´Â ÀÎÄÚµù À̸§À̶ó°í
ÁÖÀåÇÒ¸¸ÇÑ Áõ°Å ¹®¼¸¦ ´ë±â°¡ °ï¶õÇÏ¿©, ½ã»ç¿¡ bug report¸¦ ³»±âµµ
°ï¶õÇÏ´õ±º¿ä.
p.s. ¿ª½Ã, ÀÌ·± ¹®Á¦¸¦ ´Ù·ç´Â °ÍÀº Àç¹Ì¾ø±º¿ä. ¶Ç, Àú ¿ª½Ã ÀÌÂÊ
¹æ¸éÀ¸·Î Àü¹® Áö½ÄÀ» °®°í ÀÖ´Â °ÍÀº ¾Æ´Ï¶ó¼...
===== Âü°í¹®Çå =======
[1] http://www.globecom.net/(nobg,sv)/ietf/rfc/rfc2130.shtml
[2] ``The Unicode Standard, Version 2.0,'' The Unicode
Consortium, Addison Wesley, 1996
[3] http://www.unicode.org/unicode/standard/principles.html