Unicode(UCS2)로 구성된 한글은 초성 중성 종성으로 분리가 된다.
종성 = characterValue % 28
중성 = ( (characterValue - 종성 ) / 28 ) % 21
초성 = ( ( (characterValue - 종성 ) / 28 ) - 중성 ) / 21
이 값들은 인덱스 값이지 실제 Unicode 테이블표에 매치되지 않는다.
매치 시키려면 각각 초성 중성 종성의 시작 unicode 값들을 더해주면 된다.
( 초성 : 0x1100 , 중성 : 0x1161 , 종성 : 0x11A7 )
또한 초성 중성 종성의 값들로 원래의 글자값을 만들려면 다음의 공식을 이용하면 된다.
물론 각각의 값들은 인덱스 값이어야 한다. (실제 테이블 매치 값이면 각각의 값들을 빼준다.)
characterValue = ( (초성 * 21) + 중성) * 28 + 종성 + 0xAC00
한국어 자모와 글자에 대한 Unicode table 표를 참조하고 싶다면 아래의 링크로 들어간다.
자모 : http://www.unicode.org/charts/PDF/U1100.pdf
음절 : http://www.unicode.org/charts/PDF/UAC00.pdf
'Programming' 카테고리의 다른 글
파일안의 문자열을 반복적으로 치환하기 (0) | 2009.09.29 |
---|---|
glibc version checking (1) | 2009.09.29 |
Linux tip - 전에 썻던 명령어의 인자를 재활용 하기 (0) | 2009.07.10 |
File I/O & Term replacement in Ruby - 파일 내용 치환 및 저장에 관한 예제 (0) | 2009.05.25 |
Array Shuffle in Ruby - 배열 섞기 (0) | 2009.05.25 |
댓글