Back-End/Java

[Java]자바 한자를 한글로 변환 - UTF-8

HMHA 2023. 2. 9. 12:24
300x250
반응형

입력된 한자를 한글로 변환하는 방법을 소개하고자 한다.

한자란게 여러 한글로 변환이 가능하기 때문에 해당 방법으로는 완벽한 한글로 변환되는 것을 바라지 않는 것이

좋을 것이다.

한자를 한글로 변환해 주는 부분의 코드 구현은 다음과 같다.

public static String getHangle(String hanja) throws UnsupportedEncodingException
{
    char unicode = 0x0000;
    byte[] hanjaByte = hanja.getBytes("UTF-8");
    for( int i = 0; i < hanjaByte.length; )
    {
        if( (hanjaByte[i]&0xFF) < 0x80 )         // 1Byte Character
        {
            i++;
            continue;
        }
        else if( (hanjaByte[i]&0xFF) < 0xE0 )        // 2Byte Character
        {
            i += 2;
            continue;
        }
        else if( (hanjaByte[i]&0xFF) < 0xF0 )        // 3Byte Character
        {
            unicode = (char)(hanjaByte[i] & 0x0f);
            i++;
            unicode = (char)(unicode << 6);
            unicode = (char)(unicode | (hanjaByte[i] & 0x3f));
            i++;
            unicode = (char)(unicode << 6);
            unicode = (char)(unicode | (hanjaByte[i] & 0x3f));
            i++;
        }
 
        if( HANJA_TO_HANGLE_MAP[unicode] != unicode )
        {
            unicode = HANJA_TO_HANGLE_MAP[unicode];
            hanjaByte[i-1] = (byte)((unicode & 0x3f) | 0x80);
            hanjaByte[i-2] = (byte)(((unicode << 2) & 0x3f00 | 0x8000) >> 8);
            hanjaByte[i-3] = (byte)(((unicode << 4) & 0x3f0000 | 0xe00000) >> 16);
            continue;
        }
    }
 
    return (new String(hanjaByte, "UTF-8"));
}

 



출처 : https://devhome.tistory.com/20?category=105934 

 

자바 한자를 한글로 변환 - UTF-8

입력된 한자를 한글로 변환하는 방법을 소개하고자 한다. 한자란게 여러 한글로 변환이 가능하기 때문에 해당 방법으로는 완벽한 한글로 변환되는 것을 바라지 않는 것이 좋을 것이다. 한자를

devhome.tistory.com

 

300x250
반응형