±Û¾´ÀÌ :±è´öÅ 1998³â 1¿ù 10ÀÏ 01:38:20
In Reply to: [ÀçÁú¹®] getBytes("KSC5601") ¿¡ °üÇÏ¿©... posted by ±èÇÊÈ£ on 1998³â 1¿ù 08ÀÏ 13:30:51:
JDK 1.1 ³ª¿Ã ¹«·Æ (º£Å¸¿´´ø°¡?), ÇÑ±Û °ü·Ã ¹ö±×°¡ Á» ¸¹¾Ò½À´Ï´Ù.
ÇÁ·Î±×·¥¿¡ ÇѱÛÀ» ÀÎÀÚ·Î ³Ñ°ÜÁÖ¸é ±úÁö´Â ¹®Á¦°¡ ¹ß»ýÇÏ´Â °ÍÀ»
À±°æ±¸´ÔÀÌ ´º½º ±×·ìÀ» ÅëÇÏ¿© ¿Ã¸®¼Ì´Â µ¥,
Ãâ·ÂµÇ´Â Äڵ尪À» º¸´Ï, ¿©Å±îÁö °è¼Ó ¹®Á¦°¡ µÇ´Â °Í°ú ¸¶Âù°¡Áö
Çö»óÀ̾ú½À´Ï´Ù. Áï, ÇѱÛÀ» À¯´ÏÄڵ忡¼ÀÇ ÇÑ±Û ÄÚµå ¿µ¿ªÀ¸·Î
º¯È¯ÇÏÁö ¾Ê°í, 8859-1 ¹®ÀÚ ¿µ¿ªÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ̾ú½À´Ï´Ù.
±× ¹ö±×´Â JDK ³»ºÎÀÇ ÄÚµå º¯È¯ ¹ö±×¿´°í, ±×·¡¼, À¯´ÏÄÚµå·Î
Äڵ庯ȯÇϱâ ÀÌÀü»óÅÂÀÇ ¹ÙÀÌÆ® ¹è¿À» ±¸Çؼ ÄÚµå º¯È¯ ¹ö±×
ÀÌÀü »óÅÂÀÇ ¹ÙÀÌÆ®µéÀ» ±¸ÇÑ´ÙÀ½ ´Ù½Ã À¯´ÏÄÚµåÀÇ ÇÑ±Û ¿µ¿ªÀ¸·Î
Á¦´ë·Î º¯È¯ÇÔÀ¸·Î½á JDK ³»ºÎÀÇ ¹ö±×¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀ» Á¦°øÇß´ø °ÍÀÔ´Ï´Ù.
±×·¯³ª, Áö±ÝÀº ±× ¹ö±×°¡ °íÃÄÁ®¼ Á¦´ë·Î ÄÚµå º¯È¯À» ÇÕ´Ï´Ù.
Á¦´ë·Î ÄÚµå º¯È¯µÈ ½ºÆ®¸µÀ» ´Ù½Ã ±×¿Í °°ÀÌ º¯È¯Çϸé
À̹ø¿¡ ÇѱÛÀÌ ´Ù½Ã ±úÁö°Ô µË´Ï´Ù.
Áï, ±×·¯½ÄÀÇ ÇØ°á¹æ¾ÈÀº ´ëºÎºÐ ¹ÌºÀÃ¥¿¡ ºÒ°úÇÑ °ÍÀÔ´Ï´Ù.
±×·¡¼, Àú´Â ±×·± ¹æ¹ýÀ» ¾²´Â °ÍÀ» ¾ÆÁÖ ½È¾îÇÏÁö¸¸
¹ö±×¶ó´ø°¡ ÀÚ¹ÙÀÇ ¼³°è»ó ¹®Á¦µîÀÌ ÀÖÀ» ¶§´Â ¾î¿ ¼ö ¾øÀÌ
¾µ ¼ö ¹Û¿¡ ¾ø±âµµ ÇÕ´Ï´Ù.
´Ù¸¥ ¹æ¹ýÀÌ ÀÖ´Â µ¥µµ ¾²´Â °ÍÀº °áÄÚ ¹Ù¶÷Á÷ÇÏÁö ¾Ê½À´Ï´Ù.
Áú¹® 1¿¡ ´ëÇÑ ´äº¯.
http://calab.kaist.ac.kr/~dtkim/java ¿¡ º¸½Ã¸é,
´ÙÀ½ ºÎºÐÀÌ ÀÖ½À´Ï´Ù.
sun.io.CharToByteKSC5601 Ŭ·¡½ºÀÇ ¹ö±×
EUC-KR (KSC5601) ÀÎÄÚµùÀ¸·Î Ãâ·ÂÇÒ ¶§, ÀϺΠ¹®ÀÚ ÀÚ·á°¡ Ãâ·ÂµÇÁö ¾Ê°í »ç¶óÁø´Ù. ÀÌ
Ŭ·¡½º´Â À¯´ÏÄڵ带 KSC5601 ÀÎÄÚµùÀÇ ¹ÙÀÌÆ®·Î º¯È¯ÇÏ´Â ¸ðµç Ŭ·¡½º¿¡¼ ³»ºÎÀûÀ¸·Î
»ç¿ëµÈ´Ù.
getBytesµµ ÀÌ Å¬·¡½º¸¦ »ç¿ëÇÏ¿© KSC5601 ÄÚµå·Î º¯È¯ÇϹǷÎ, ÀÌ Å¬·¡½ºÀÇ ¹ö±×´Â
getBytes »Ó¸¸ ¾Æ´Ï¶ó À̸¦ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â ´Ù¸¥ Ŭ·¡½ºÀÇ ¹ö±×·Î À̾îÁý´Ï´Ù.
¹ö±×ÀÇ ¿øÀÎÀº ¿¹¿Ü 󸮸¦ À߸øÇÑ Á» ¹Ì¹¦ÇÑ °ÍÀ̾ú½À´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ ¹ö±×°¡ ¿µÇâÀ» ¹ÌÄ¡´Â Ŭ·¡½º°¡ ¸¹¾Æ¼ workaround¸¦ ¸¸µé±â °ï¶õÇÏ°í º¹ÀâÇßÀ¸¹Ç·Î,
À̵é Ŭ·¡½º¸¦ ±³Á¤ÇÏ¿© ¹èÆ÷Çß´ø °ÍÀÔ´Ï´Ù.
±×·¯³ª, À¥ ºê¶ó¿ìÀú¿¡¼´Â ÀÏ¹Ý »ç¿ëÀÚ°¡ ±× ¹ö±× ÆÐÄ¡ÈÀÏÀ» ¼³Ä¡ÇϱⰡ
°ï¶õÇÒ °ÍÀÌ°í, »ý°¢°ú´Â ´Þ¸® ½ã»ç¿¡¼´Â ¾ÆÁ÷µµ ±× ¹ö±×¸¦ °íÄ¡Áö ¾Ê°í ÀÖ¾î¼,
Á»´õ ÀÚ¼¼ÇÑ bug checking program°ú workaround¸¦ ÁغñÁßÀÔ´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ ¹ö±×°¡ getBytesÀÇ ¹ö±×·Î À̾îÁöÁö´Â ¾Ê´Â °Í °°´õ±º¿ä.
Á» ´õ Á¶»çÇغ¸¾Æ¾ß ÇÕ´Ï´Ù.
Áú¹® 2¿¡ ´ëÇÑ ´äº¯.
Áú¹® Àǵµ¸¦ Àß ÆľÇÇÒ ¼ö ¾øÀ½.
Áú¹® 3¿¡ ´ëÇÑ ´äº¯.
´ñ±Û¿¡ º¸´Ï ÀÌÇØÇϽŠ°Í °°±º¿ä.
Áú¹® 4¿¡ ´ëÇÑ ´äº¯.
ÀÚ¹Ù ¿ø½ÃÈÀÏÀ» ÇÑ±Û È¯°æÀÇ ÆíÁý±â·Î º¸¸é,
String str = "°¡°¢" ¿¡¼ÀÇ `°¡' ¶ó´Â ¹®ÀÚ¿Í `°¢'À̶ó´Â ¹®ÀÚ°¡
Çѱ۷ΠÁ¦´ë·Î º¸ÀÔ´Ï´Ù.
±× ÀÌÀ¯´Â ÀÚ¹ÙÀÇ ¿ø½ÃÈÀϳ»¿¡ ÀÖ´Â ÇѱÛÀº ÇöÀç Ç¥ÁØÈ µÇ¾îÀÖ´Â
KSC5601 ÀÎÄÚµùÀÇ ¹ÙÀÌÆ® °ªÀ¸·Î ÀúÀåµÇ¾î Àֱ⠶§¹®ÀÔ´Ï´Ù.
(Áï, '°¡'µµ KSC5601 2 ¹ÙÀÌÆ®, '°¢'µµ KSC5601 2 ¹ÙÀÌÆ® Â÷Áö)
ÀÚ¹Ù 1.1¿¡¼´Â ¹®ÀÚ°¡ ¸ðµÎ À¯´ÏÄÚµå 2.0À¸·Î Ç¥ÇöµÇ¾î¾ß ÇϹǷÎ,
ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ JDK 1.1ÀÇ ÀÚ¹Ù ÄÄÆÄÀÏ·¯´Â ¿ø½ÃÈÀϳ»ÀÇ
KSC5601 ¹ÙÀÌÆ®µéÀ» ¸ðµÎ À¯´ÏÄÚµåÀÇ ÇÑ±Û ¿µ¿ª¿¡ ÀÖ´Â Äڵ尪À¸·Î
º¯È¯ÇÏ¿© .class ÈÀÏÀ» ¸¸µé°Ô µË´Ï´Ù.
Áï, Á¦´ë·Î ÄÄÆÄÀÏµÈ .class ÈÀÏ¿¡´Â ÇѱÛÀÌ À¯´ÏÄÚµå ¿µ¿ª 0xAC00 ºÎÅÍ ½ÃÀÛÇÏ´Â
ÇÑ±Û Äڵ尪À¸·Î ÀúÀåµÇ¹Ç·Î, ½ÇÇà½ÃÄѺ¸¸é À¯´ÏÄÚµå °ªÀ¸·Î ÀúÀåµÇ¾î ÀÖÀ½À»
¾Ë ¼ö ÀÖ½À´Ï´Ù.
µû¶ó¼, À¯´ÏÄÚµå ÇÑ±Û ¹®ÀÚ¿ÀÌ ÀúÀåµÈ strº¯¼ö¸¦ getBytes("KSC5601")À»
½ÇÇàÇÏ¸é ¹ÙÀÌÆ® ¹è¿ÀÌ ¹ÝȯµÇ´Â µ¥, À̶§ À¯´ÏÄڵ峻ÀÇ ÇÑ±Û ÄÚµå ¿µ¿ª¿¡ ÀÖ´Â Äڵ尪Àº
KSC5601³»¿¡¼ÀÇ ´ëÀÀÇÏ´Â ÇÑ±Û ¹®ÀÚ¸¦ ³ªÅ¸³»´Â Äڵ尪À¸·Î º¯È¯µÇ¾î ¹ÝȯµË´Ï´Ù.
µû¶ó¼, ±× ¹ÙÀÌÆ® ¹è¿À» ÈÀÏ·Î ÀúÀåÇϰųª µµ½ºÃ¢À¸·Î ±×´ë·Î Ãâ·ÂÇϸé
ÀϹÝÀûÀÎ ÇÑ±Û È¯°æ¿¡¼ ÇѱÛÀ» º¼ ¼ö ÀÖ´Â ÇüÅÂÀÎ KSC5601 Äڵ尪À¸·Î
ÀúÀåµÇ°Ô µÇ´Â °ÍÀÔ´Ï´Ù.
°á·ÐÀûÀ¸·Î, EUC-KR (KSC5601) Äڵ尪ÀÌ ±×´ë·Î char, char[], String ÀÚ·áÇü¿¡ ÀúÀåµÇ¸é
±×°Ç ÀÏ´Ü À߸ø ÀúÀåµÈ °ÍÀÔ´Ï´Ù. ÄÚµå º¯È¯À» Çؼ À¯´ÏÄÚµåÀÇ ÇÑ±Û ¿µ¿ª³»ÀÇ
Äڵ尪À¸·Î ÀúÀåÇØ¾ß ÇÕ´Ï´Ù.
±×·¡ÇÈ ÇÁ·Î±×·¥¿¡¼ÀÇ ÇÑ±Û Ãâ·Â¹æ½ÄÀº ÀÌ¿Í Á» ´Ù¸¨´Ï´Ù.
Áö±Ý ¿©·¯°¡Áö ¿¹Á¦ ÇÁ·Î±×·¥ ¹× Å×½ºÆ®, ÀÚ·áµîÀ» ÁغñÇÏ°í ÀÖ½À´Ï´Ù.