[½Ç¼ö] À§¿¡ °Í º¸Áö¸¶½Ã°í ÀÌ°ÍÀ» º¸¼¼¿ä....


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

±Û¾´ÀÌ :ÀüÀÀ½Ä 1998³â 4¿ù 07ÀÏ 11:20:32

In Reply to: Á˼ÛÇÕ´Ï´Ù. ´Ù½Ã Áú¹® posted by ÀüÀÀ½Ä on 1998³â 4¿ù 07ÀÏ 11:17:45:

´äº¯ °¨»çÇÕ´Ï´Ù.


¸»¾¸ÇϽŴë·Î NetscapeÀÇ ¹öÀü¿¡´Â »ó°ü¾øÀÌ ÇѱÛÀÌ Àß³ª¿À´õ±º¿ä..


¿ì¼± Á¦°¡ °³¹ßÇϴ ȯ°æ¿¡ ´ëÇؼ­ ¸»¾¸À» µå·Á¾ß µÇ°Ú±º¿ä.
Àú´Â Áö±Ý JDBC¸¦ ½á¼­ ORACLE DB¿¡¼­ ÇѱÛÀ» °¡Á®¿À´Â ÇÁ·Î±×·¥À»
ÀÛ¼ºÇÏ°í ÀÖ½À´Ï´Ù.


Áö±Ý±îÁö ¿©·¯ ¾î·Á¿òÀÌ ÀÖ¾úÀ¸³ª ¿©·¯ °í¼ö´ÔµéÀÇ µµ¿òÀ¸·Î
ÇØ°áÀ» ÇÏ¿´°í¿ä.


Áö±ÝÀÇ ÀúÀÇ ¹®Á¦´Â ¿µ¹® NetscapeÀÇ ¹öÀü(4.x ¶Ç´Â 4.04)ÀÇ
¹®Á¦ ¶Ç´Â ÇÑ±Û NetscapeÀÇ ¹öÀü(4.x ¶Ç´Â 4.04)ÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó


ÇÑ±Û Netscape¿Í ¿µ¹® NetscapeÀÇ TextArea¹®Á¦ÀÔ´Ï´Ù.
(Âü°í·Î Àú´Â µÑ´Ù 4.04¹öÀüÀ¸·Î testÇÏ¿´½À´Ï´Ù)



±¸Ã¼ÀûÀ¸·Î
Àú´Â ORA DB¿¡¼­ uni1.2ÄÚµå·Î ¹Þ¾Æ¿Í¼­ ±×°ÍÀ» uni2.0ÄÚµå·Î
º¯È¯À» ÇÏ¿´½À´Ï´Ù.
À̶§ ¾²ÀÎ ÇÔ¼ö°¡ fromUni12ÀÌ°í¿ä.


±×·¯³ª ÀÌ·¸°Ô uni2.0À¸·Î º¯È¯µÈ ÇѱÛÀº Çѱ۹öÀüÀÇ Netscape¿¡¼­´Â
Á¦´ë·Î ³ª¿Ô½À´Ï´Ù.
±×·¯³ª ¿µ¹® Netscape¿¡¼­´Â ³ª¿ÀÁö ¾Ê´õ¶ó±¸¿ä.


(¾Æ·¡ÀÇ ¿¹ ÂüÁ¶)
uni20À¸·Î º¯È¯µÈ ÇÑ±Û = ºÏÆò
uni20À¸·Î º¯È¯ÇÏ°í ´Ù½Ã ±×°ÍÀ» iso8859_1·Î º¯È¯ÇÑ ÇÑ±Û = ¨¬?¨¡?¡¾©ö¡Æ



±×¸®°í ¹Ý´ë·Î ¿µ¹® ¹öÀü¿¡¼­´Â ¹Ý´ëÀÇ Çö»óÀÌ ÀϾ´õ±º¿ä.


(¾Æ·¡ÀÇ ¿¹ ÂüÁ¶)
uni20À¸·Î º¯È¯µÈ ÇÑ±Û = ??
uni20À¸·Î º¯È¯ÇÏ°í ´Ù½Ã ±×°ÍÀ» iso8859_1·Î º¯È¯ÇÑ ÇÑ±Û = ºÏÆò


Áï ¿©±â¼­ ¸»ÇÑ ¹öÀüÀº 4.x¿Í 4.04ÀÇ Â÷ÀÌ°¡ ¾Æ´Ï¶ó
Çѱ۹öÀü°ú ¿µ¹®¹öÀüÀÇ Â÷À̸¦ ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù.


Âü°í·Î Äڵ庯ȯÇÏ´Â ¼Ò½º¸¦ °°ÀÌ ¿Ã¸®°Ú½À´Ï´Ù.
ÀÌ ¼Ò½º´Â ±è´öÅ´ÔÀÇ ¼Ò½º¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.
ÀÌ·¸°Ô ÁÖÀýÁÖÀý ¾´°ÍÀ» ´Ù ÀоîÁּż­ °¨»çÇÏ°í ´äº¯À» ±â´Ù¸®°Ú½À´Ï´Ù.



public static String toUni12( String uni20 )
{
int len = uni20.length();
char[] out = new char[len];
for( int i = 0; i < len; i++ )
{
char c = uni20.charAt(i);
if ( c < 0xac00 || 0xd7a3 < c )
{
out[i] = c;
} else // À¯´ÏÄÚµå 2.0 ÇÑ±Û ¿µ¿ª
{
try
{
byte[] ksc = String.valueOf(c).getBytes("KSC5601");
if ( ksc.length != 2 )
{
out[i] = '\ufffd';
System.err.println("Warning: Some of Unicode 2.0 hangul character was ignored." );
} else
{
out[i] = (char) ( 0x3400 +
((ksc[0] & 0xff) - 0xb0) * 94 +
(ksc[1] & 0xff) - 0xa1 );
}
} catch( java.io.UnsupportedEncodingException ex )
{ throw new InternalError("Fatal Error: KSC5601 encoding is not supported." );
}
}
}
return new String( out );
}
// Unicode 1.2 -> Unicode 2.0
public static String fromUni12( String uni12 )
{
int len = uni12.length();
char[] out = new char[len];
byte[] ksc = new byte[2];
for( int i = 0; i < len; i++ )
{
char c = uni12.charAt(i);
if ( c < 0x3400 || 0x4dff < c )
{
out[i] = c;
} else if ( 0x3d2e <= c ) // À¯´ÏÄÚµå 1.2 ÇÑ±Û º¸Ãæ ¿µ¿ª A, B
{
System.err.println("Warning: Some of Unicode 1.2 hangul character was ignored." );
out[i] = '\ufffd';
} else // À¯´ÏÄÚµå 1.2ÀÇ KSC5601 ´ëÀÀ ÇÑ±Û ¿µ¿ª
{
try
{
ksc[0] = (byte) ( (c - 0x3400) / 94 + 0xb0 );
ksc[1] = (byte) ( (c - 0x3400) % 94 + 0xa1 );
out[i] = new String( ksc, "KSC5601" ).charAt(0);
} catch( java.io.UnsupportedEncodingException ex )
{ throw new InternalError(
"Fatal Error: KSC5601 encoding is not supported." );
}
}
}
return new String( out );
}
// KSC5601 range in Unicode 2.0 -> 8859_1 range in Unicode 2.0
public static String to8859_1( String ksc )
{
try
{
return new String( ksc.getBytes("KSC5601"), "8859_1" );
} catch( java.io.UnsupportedEncodingException ex )
{ throw new InternalError(
"Fatal Error: KSC5601 or 8859_1 encoding is not supported." );
}
}
// 8859_1 range in Unicode 2.0 -> KSC5601 range in Unicode 2.0
public static String from8859_1( String iso8859_1 )
{
try
{
return new String( iso8859_1.getBytes("8859_1"), "KSC5601" );
} catch( java.io.UnsupportedEncodingException ex )
{ throw new InternalError(
"Fatal Error: KSC5601 or 8859_1 encoding is not supported." );
}
}



PS : Á¦°¡ »ç¿ëÇÑ ¹æ¹ý


strÀº DB·ÎºÎÅÍ ¹ÞÀº ÇÑ±Û uni1.2ÄÚµå
textarea.appendText("fromUni12 = "+gConvert.fromUni12(str)) ;
textarea.appendText("8859_1Uni1 = "+gConvert.to8859_1(gConvert.fromUni12(str))) ;


´ÙÀ½ ±Ûµé:



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

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


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