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
300x250
반응형
'Back-End > Java' 카테고리의 다른 글
[Java] 자바 byte 단위로 문자열 자르기 (0) | 2023.02.10 |
---|---|
[JAVA]JXLS, POI JAVA에서 Excel 사용하는 구현 방법 및 종류 비교 (0) | 2023.02.09 |
[Java]자바(Java) 한글 초성 검색 (0) | 2023.02.09 |
[Java]ENUM 파헤치기 (0) | 2023.02.09 |
[Java] JAVA 에서 javascript (ECMA script) 실행하기 (1) | 2023.02.06 |