¼­ºí¸´ÀÇ ÇÑ±Û ÄÚµå ó¸® °úÁ¤.


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]

±Û¾´ÀÌ :±è´öÅ 1998³â 1¿ù 20ÀÏ 03:47:09

In Reply to: ¿©±â¸¦ °¡ º¸¼¼¿ä... posted by ±èÇÊÈ£ on 1998³â 1¿ù 18ÀÏ 14:54:42:

¿ì¼± ÄÚµå º¯È¯ÀÇ ¿ë¾î¿¡ ´ëÇؼ­ ¾à°£ È¥¶õ½º·´°Ô »ç¿ëµÇ°í ÀÖÀ¸³ª,


Àڹ٠ǥÁØ¿¡ ÀÇÇÑ ÄÚµå º¯È¯Àº, ¹ÙÀÌÆ® ¹è¿­ ȤÀº ¹ÙÀÌÆ® ½ºÆ®¸²°ú
char ÀÚ·áÇü ȤÀº ¹®ÀÚ ½ºÆ®¸² »çÀÌ¿¡ ÀÚ·á°¡ Àü´ÞµÇ¸é
ÀÚ¹Ù ¾ð¾îÀÇ Á¤ÀÇ¿¡ ÀÇÇؼ­ ¹«Á¶°Ç Äڵ庯ȯÀÌ ÀϾ´Â °ÍÀ¸·Î º¸°í ÀÖ½À´Ï´Ù.


°üÁ¡¿¡ µû¶ó ÄÚµå º¯È¯À» ¾à°£ ´Þ¸® º¼ ¼ö´Â ÀÖÁö¸¸,
Á¦°¡ º¸´Â °üÁ¡Àº ´ÙÀ½ 3°¡Áö·Î ¿ä¾àµË´Ï´Ù.


1. ÀÚ¹Ù´Â char ÀÚ·áÇüÀº ¹®ÀÚ¸¦ ±× ¹®ÀÚ¸¦ ³ªÅ¸³»´Â 16 ºñÆ® À¯´ÏÄڵ尪À¸·Î Ç¥ÇöµÇµµ·Ï Á¤ÀǵǾî ÀÖÀ¸¸ç,
2. ÀÚ¹Ù 1.1ÀÇ ¸¹Àº Ŭ·¡½ºµé¿¡¼­ ¹®ÀÚ°¡ char ÀÚ·áÇü¿¡¼­´Â ±×·¸°Ô Ç¥ÇöµÇ¾úÀ» ¶§¿¡¸¸ Á¦´ë·Î ÇØ´ç ¹®ÀÚ°¡
󸮵ǵµ·Ï Áö¿øÇÏ°í ÀÖ°í
3. ÀÚ¹Ù 1.2¸¦ ºñ·ÔÇÑ Â÷ÈÄ ¹öÀüÀº ÇöÀç ÀÚ¹Ù°¡ Á¦´ë·Î Á¦´ë·Î À¯´ÏÄÚµå Ç¥ÇöÀÇ ÇѱÛÀ» Áö¿øÇÏÁö
¸øÇÏ´Â °æ¿ì°¡ ÀÖ´Â ºÎºÐ (ƯÈ÷, ¼­ºí¸´°ú µ¥ÀÌŸº£À̽º)¿¡ ´ëÇÑ Áö¿øÀ» È®´ëÇÏ°í ÀÖ½À´Ï´Ù.


µû¶ó¼­, char ÀÚ·áÇü¿¡¼­´Â À¯´ÏÄڵ忡¼­ÀÇ ÇÑ±Û Äڵ尪À¸·Î ÇѱÛÀÌ Ç¥ÇöµÇ´Â °ÍÀÌ Ç¥ÁØÀ̸ç,
byte ÀÚ·áÇü ¹× HTML FORM µ¥ÀÌŸ, ¼­ºê¸´ Ãâ·Â, µ¥ÀÌŸº£À̽º·ÎÀÇ ÀúÀåµî¿¡¼­´Â ¸ðµÎ
ÀÚ·á°¡ KSC5601, 8859-1, UTF8µî ¿©·¯°¡Áö ¿ÜºÎ ÀÎÄÚµùÀÌ »ç¿ëµÇ´Â °ÍÀ¸·Î º¸¸é,
ÀÚ¹ÙÀÇ char ÀÚ·áÇüÀÇ ÀÚ·á°¡ À̵é ÇüÅ·Πº¯È¯ ȤÀº ÀÔÃâ·ÂµÉ ¶§´Â
ÀÎÄÚµùÀÌ ¹Ù²î¹Ç·Î, ÄÚµå º¯È¯ÀÌ ÀϾ´Â °ÍÀ¸·Î º¾´Ï´Ù.
(ÄÚµå º¯È¯Àº ¹Ýµå½Ã ÄÚµå °ªÀÌ º¯ÇØ¾ß ÇÔÀ» ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï±â ¶§¹®ÀÔ´Ï´Ù.)


µû¶ó¼­, convert_to_asciiµîµîÀÇ ¸Þ½îµå´Â ÄÚµå º¯È¯À» 1¹ø ÇÑ°ÍÀÌ ¾Æ´Ï¶ó 2¹ø ÇÑ °ÍÀÔ´Ï´Ù.



±× ¼­ºí¸´¿¡¼­´Â HTTP ÇÁ·ÎÅäÄÝÀÇ GET mothod¸¦ ÅëÇÏ¿©
getParameter ¸Þ½îµå·Î ±× °ªÀ» ÀоîµéÀ̴̼õ±º¿ä. (´ëºÎºÐÀÇ °æ¿ì ±×·¸µíÀÌ)


HTTP ÇÁ·ÎÅäÄÝÀº À¥ ¹®¼­ÀÇ ÀÎÄÚµùÀ» À¥ ¹®¼­¿Í ÇÔ²² µ¡ºÙ¿© º¸³¾ ¼ö ÀÖ´Â
±â´ÉÀÌ ÀÖ¾î ´Ù±¹¾î ±â´ÉÀ» ¾î´À Á¤µµ Á¦°øÇϳª,
GET method¸¦ ÅëÇÏ¿© À¥ ¼­¹ö·Î ÀÔ·ÂÀ» Àü´ÞÇÒ ¶§´Â, ÀÎÄÚµùÀ» ÷ºÎÇؼ­
³Ñ°ÜÁÖ´Â ±â´ÉÀÌ ÇÁ·ÎÅäÄÝ¿¡ ¾øÀ¸¹Ç·Î, ÀÚ¹Ùµµ ¿ÏÀüÇÏ°Ô Áö¿øÇÏÁö ¸øÇÏ°í ÀÖ½À´Ï´Ù.
Áï, getParameter¸Þ½îµå´Â HTML FORMÀ¸·ÎºÎÅÍ Àоîµé¿© ¹ÙÀÌÆ®°ªÀ» ¾òÀº ÈÄ¿¡,
¾Õ¿¡ 0À» ºÙ¿© 16 ºñÆ® À¯´ÏÄڵ尪À» ¸¸µì´Ï´Ù.
(¸¶Ä¡ deprecateµÈ ¸Þ½îµåÀÎ DataInputStreamÀÇ readLine°ú ¶È°°ÀÌ)
µû¶ó¼­, ÇÁ·Î±×·¥³»¿¡¼­ ¸í½ÃÀûÀ¸·Î ÄÚµå º¯È¯ÀÌ ¾ø´Ù ÇÒÁö¶óµµ,
getParameter°¡ ¾Õ¿¡ 0À» ºÙ¿© À¯´ÏÄڵ尪À» ¸¸µêÀ¸·Î½á, ÀÔ·Â ¹®ÀÚ¸¦
8859-1 ¹®ÀÚ·Î °¡Á¤ÇÏ°í À¯´ÏÄÚµå·Î Äڵ庯ȯÇÑ °ÍÀ̸ç,
¿ª½Ã »ç¿ëÇÏ°í °è½Å JDBC µå¶óÀ̹ö´Â À¯´ÏÄÚµåÀÇ 8859-1 ¹®ÀÚ ¿µ¿ªÀÇ Äڵ尪À¸·Î
°¡Á¤ÇÏ°í ÄÚµå º¯È¯ÇÏ¿© µ¥ÀÌŸº£À̽º¿¡ ÀúÀåÇÑ ÈÄ, °Ë»öµÇ¾úÀ¸¸ç,
ServletOutputStreamÀÇ println ¸Þ½îµå ¿ª½Ã 8859-1 ÀÇ À¯´ÏÄÚµå ¿µ¿ªÀ¸·Î °¡Á¤ÇÏ°í
Ãâ·ÂÇÏ¿´±â¿¡ ÇѱÛÀÌ Á¦´ë·Î Ãâ·Â µÈ °ÍÀ̸ç, ÀÌ Áß¿¡¼­ 8859_1°¡ ¾Æ´Ñ ÀÎÄÚµùÀ» °¡Á¤ÇÏ°í
ÄÚµå º¯È¯Çϴ Ŭ·¡½º ( JDBC µå¶óÀ̹ö, ȤÀº FileWriter, OutputStreamWriter, ...µîµî)°¡
°³ÀÔµÈ´Ù¸é ±× ºÎºÐ¿¡¼­ ÇѱÛÀÌ ±úÁö°Ô µË´Ï´Ù.


µû¶ó¼­, Á¤»óÀûÀ¸·Î À¯´ÏÄÚµåÀÇ ÇÑ±Û Äڵ尪À¸·Î ¹ÝȯµÇÁö ¾Ê½À´Ï´Ù.
À¯´ÏÄÚµåÀÇ ÇÑ±Û Äڵ尪À¸·Î ¹ÝȯµÈ ½ºÆ®¸µÀº
ÀÚ¹Ù 1.1ÀÇ System.out.println()À» »ç¿ëÇؼ­ Ãâ·ÂÇϸé ÇѱÛÀÌ Ãâ·ÂµÇ³ª,
getParamter()·Î ¹ÝȯµÈ ½ºÆ®¸µÀ» ±×´ë·Î È­¸é¿¡ Ãâ·ÂÇϰųª,
new PrintWriter(new FileInputStream(..))¿¡ println ¸Þ½îµå¸¦ »ç¿ëÇؼ­
È­ÀÏ¿¡ ±× ½ºÆ®¸µÀ» Ãâ·ÂÇϸé ÇѱÛÀÌ ±úÁö°Ô µÉ °ÍÀ̸ç,
±× Äڵ尪À» Integer.toHexString()À» »ç¿ëÇؼ­ 16Áø¼ö·Î Âï¾îº¸¸é
º¸´Ù È®½ÇÇÏ°Ô ¾Ë ¼ö ÀÖ½À´Ï´Ù.



À̶§, getParamter()·ÎºÎÅÍ ¹ÝȯµÈ À߸ø Ç¥ÇöµÈ À¯´ÏÄÚµå ¹®ÀÚ¿­À»
±³Á¤ÇÏ´Â ¹æ¹ýÀÌ convert_to_asciiÀÇ ¿ª ¸Þ½îµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ°í,
¶Ç ´Ù¸¥ ¹æ¹ýÀº À߸ø Ç¥ÇöµÈ À¯´ÏÄڵ带 »ç¿ëÇÏ´Â ¸Þ½îµå¸¸À»
ÇÁ·Î±×·¥³»¿¡¼­ ÀÏ°üµÇ°Ô »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.


2°¡Áö ¹æ¹ýÁß¿¡¼­ Àú´Â ÀÏ°üµÇ°Ô 1¹ø° ¹æ¹ýÀ» »ç¿ëÇϳª,
±èÇÊÈ£´ÔÀº ÀÏ°üµÇ°Ô 2¹ø° ¹æ¹ýÀ» »ç¿ëÇϽôõ±º¿ä.
ºñ·Ï À߸øÇ¥ÇöµÈ À¯´ÏÄڵ带 »ç¿ëÇÑ´Ù°í Çصµ »óȲ¿¡ µû¶ó ÇÊ¿äÇÏ´Ù¸é
±×¸®°í ¿Ã¹Ù¸¥ °á°ú¸¦ ¸¸µé¾î³½´Ù¸é ¹°·Ð Àǹ̰¡ ÀÖÀ¸¸ç,
ƯÈ÷, ÀÚ¹Ù 1.1ÀÇ ¼­ºí¸´°ú µ¥ÀÌŸº£À̽º¿¡¼­´Â ÇѱÛÀ» ºñ·ÔÇÑ ´Ù±¹¾î Áö¿øÀÌ
¹ÌºñÇÑ ºÎºÐÀÌ Àֱ⠶§¹®¿¡ ´õ¿í ±×·¯ÇÕ´Ï´Ù.


±×·¯³ª, À߸ø Ç¥ÇöµÈ °ÍÀ̶ó´Â »ç½ÇÀº ¸íÈ®È÷ ÇØ µÎ´Â °ÍÀÌ
ÃÖ¼ÒÇÑ °³³ä»ó È¥¶õÀ» ´ú ÃÊ·¡ÇÕ´Ï´Ù.
¹Ø¿¡ ¿¹Á¦ ÇÁ·Î±×·¥À» ÷ºÎÇÕ´Ï´Ù.


»ç¿ëÇÏ°í °è½Å ¹æ¹ýÀº DB¿¡ À¯´ÏÄÚµå·Î ÀúÀåµÇ¾ú´Ù°í º¼ ¼ö ¾ø½À´Ï´Ù.
UTF8À» ºñ·ÔÇÑ À¯´ÏÄÚµå·ùÀÇ ÀÎÄÚµùÀ¸·Î ÀúÀåµÈ´Ù¸é,
À̸§ÀÌ ÇÑ±Û »Ó¾Æ´Ï¶ó ÇÁ¶û½º¾îµî ´Ù¾çÇÑ ¾ð¾îÀÇ À̸§ÀÌ
Ãæµ¹¾øÀÌ Çѱ۰ú ¼¯¿©¼­ ÀúÀåµÉ ¼ö ÀÖÀ¸¸ç,
±×°ÍÀÌ À¯´ÏÄÚµåÀÇ °¡Àå Áß¿äÇÑ ¸ñÀûÀ̱⠶§¹®ÀÔ´Ï´Ù.
±×·¯³ª, »ç¿ëÇϽŠ¹æ¹ýÀ¸·Î´Â ±×°ÍÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.
(KSC5601 Çѱ۸¸À» ´Ù·ç´Â °ÍÀÌ ¸í¹éÇÑ »óȲ¿¡¼­´Â Áß¿äÇÏÁö ¾Ê±â´Â ÇÏÁö¸¸)



import java.io.*;


class StringBytesConvTest
{ public static void main(String[] args)
throws IOException
{ byte[] ksc = new byte[10000];
int count = 0;
for(int b; (b = System.in.read()) != -1; count++)
ksc[count] = (byte) b;


System.out.print( "KSC5601 (EUC-KR) Äڵ尪 (16Áø¼ö): " );
for(int i = 0; i < count; i++)
System.out.print( " " + Integer.toHexString(ksc[i] & 0xff) );
System.out.println();


System.out.print( "À¯´ÏÄÚµå 2.0 Äڵ尪 (16Áø¼ö): " );
String str = new String(ksc, 0, count, "KSC5601");
for(int i = 0; i < str.length(); i++)
System.out.print( " " + Integer.toHexString(str.charAt(i)) );
System.out.println();


System.out.print( "¿ªº¯È¯µÈ KSC5601 (EUC-KR) Äڵ尪 (16Áø¼ö): " );
displayEncoding( str, "KSC5601" );
System.out.print( "¿ªº¯È¯µÈ 8859_1 Äڵ尪 (16Áø¼ö): " );
displayEncoding( str, "8859_1" );
System.out.print( "¿ªº¯È¯µÈ UTF8 Äڵ尪 (16Áø¼ö): " );
displayEncoding( str, "UTF8" );


System.out.write( ksc, 0, count );
System.out.print( str );
System.out.flush();
}


static void displayEncoding( String str, String encoding )
throws UnsupportedEncodingException
{
byte[] bytes = str.getBytes(encoding);
for(int i = 0; i < bytes.length; i++)
System.out.print( " " + Integer.toHexString(bytes[i] & 0xff) );
System.out.println();
}
}


C:\example\i18n> java StringBytesConvTest
ab°¡³ª (¸®ÅÏÅ°¸¦ Ä£ÈÄ, Control-Z ÀÔ·Â)
KSC5601 (EUC-KR) Äڵ尪 (16Áø¼ö): 61 62 b0 a1 b3 aa d a
À¯´ÏÄÚµå 2.0 Äڵ尪 (16Áø¼ö): 61 62 ac00 b098 d a
¿ªº¯È¯µÈ KSC5601 (EUC-KR) Äڵ尪 (16Áø¼ö): 61 62 b0 a1 b3 aa d a
¿ªº¯È¯µÈ 8859_1 Äڵ尪 (16Áø¼ö): 61 62 3f 3f d a
¿ªº¯È¯µÈ UTF8 Äڵ尪 (16Áø¼ö): 61 62 ea b0 80 eb 82 98 d a
ab°¡³ª
ab°¡³ª




´ÙÀ½ ±Ûµé:



À̾ ±Û¿Ã¸®±â(´äÇϱâ)

À̸§:
E-Mail:
Á¦¸ñ:
³»¿ë:
°ü·Ã URL(¼±ÅÃ):
URL Á¦¸ñ(¼±ÅÃ):
°ü·Ã À̹ÌÁö URL:


[ ´ÙÀ½ ±Ûµé ] [ À̾ ±Û¿Ã¸®±â(´äÇϱâ) ] [ ÀÚ¹Ù ¹¯°í ´äÇϱâ ]