본문 바로가기

프로그래밍

유니코드에서의 한글

반응형

유니코드 한글 음절

uAC00부터 uD7A3까지 구역은 10000여자가 넘는 방대한 현대 한글 문자가 완성형의 형태로 차지하고 있다. 아래 항목에서 언급하게 될 첫소리, 가운데소리, 끝소리 문자들이 순서대로 조합되어 나열되어 있으므로 음절 문자를 자모 문자로 변환 하거나, 반대로 자소문자를 이용해서 음절 문자로 변환하는 작업은 비교적 간단하다.


음절 문자 배열의 규칙성

위 항목의 문자 코드 배열 순서는 끝 소리 글자 28자, 가운데 소리 글자 21자, 첫소리 글자 19자를 순서대로 조합해서 만들어져 있다. 이 때 첫/가/끝 소리 문자의 나열 순서는 아래 항목의 한글 자모 문자의 순서와 동일하다. 단, 끝 소리 문자에 받침이 없는 경우가 추가되어 28개의 조합이 사용된다.

가, 각, 갂, 갃, 간, ..., 개, 객, 갞, ..., 까, 깍, 깎, ..., 힣

 

 첫 소리

 가운데 소리

 끝 소리

 1

 ㄱ

 ㅏ

 (받침 없음)

 2

 ㄲ

 ㅐ

 ㄱ

 3

 ㄴ

 ㅑ

 4

 ㄷ

 ㅒ

 5

 ㄸ

 ㅓ

 ㄴ

 6

 ㄹ

 ㅔ

 ㄵ

 7

 ㅁ

 ㅕ

 ㄶ

 8

 ㅂ

 ㅖ

 ㄷ

 9

 ㅃ

 ㅗ

 ㄹ

 10

 ㅅ

 ㅘ

 ㄺ

 11

 ㅆ

 ㅙ

 ㄻ

 12

 ㅇ

 ㅚ

 ㄼ

 13

 ㅈ

 ㅛ

 ㄽ

 14

 ㅉ

 ㅜ

 ㄾ

 15

 ㅊ

 ㅝ

 ㄿ

 16

 ㅋ

 ㅞ

 ㅀ

 17

 ㅌ

 ㅟ

 ㅁ

 18

 ㅍ

 ㅠ

 ㅂ

 19

 ㅎ

 ㅡ

 ㅄ

 20

 

 ㅢ

 ㅅ

 21

 

 ㅣ

 ㅆ

 22

 

 

 ㅇ

 23

 

 

 ㅈ

 24

 

 

 ㅊ

 25

 

 

 ㅋ

 26

 

 

 ㅌ

 27

 

 

 ㅍ

 28

 

 

 ㅎ

이러한 규칙을 바탕으로 한글 음절을 자소 단위로 분해하는 코드는 다음과 같이 작성할 수 있다. 전체 소스 코드는 이곳에서!

protected static char getChoSeong(char character) {

int val = (int)character;

val -= HANGEUL_SYLLABLE_BEGIN;

val = val / 28 / 21;

val += HANGEUL_JAMO_CHOSEONG_BEGIN;

return (char) val;

}


protected static char getJungSeong(char character) {

int val = (int)character;

val -= HANGEUL_SYLLABLE_BEGIN;

val = val / 28 % 21;

val += HANGEUL_JAMO_JUNGSEONG_BEGIN;

return (char) val;

}


protected static char getJongSeong(char character) {

int val = (int)character;

val -= HANGEUL_SYLLABLE_BEGIN;

val = val % 28 - 1;

if (val == -1) return FILLER; //종성없음

val += HANGEUL_JAMO_JONGSEONG_BEGIN;

return (char) val;

}


유니코드 한글 자모

u1100에서부터 u11FF 까지는 한글의 자음 및 모음이 할당되어 있다. 순서대로 현대 한글 첫소리 글자 19자, 옛 한글 첫소리 글자 76자, 첫소리 채움문자, 가운데소리 채움문자, 현대 한글 가운데 소리 문자 21자, 옛 한글 가운데 소리 글자 50자, 현대 한글 끝소리 글자 27자, 옛 한글 끝소리 글자 61자가 나열되어 있다.



유니코드 한글 호환 자모

u3131부터 u318E까지의 영역에도 한글 자음 및 모음이 할당되어 있다. (시스템에 따라 다르겠지만,) 한글의 자음 또는 모음을 낱자로 사용하는 경우(예를들어, 'ㄱ' 등)에는 위의 '한글 자모' 문자 코드 대신 '한글 호환 자모' 문자 코드가 사용된다. 위 항목의 자음/모음 배열은 초/중/종성으로 구분되어 있는 반면, 한글 호환 자모 영역은 자음과 모음으로 구분되어 있는데, 순서대로 현대 한글 자음, 현대 한글 모음, 옛 한글 자음, 옛 한글 모음 순으로 나열되어 있다.


반응형

'프로그래밍' 카테고리의 다른 글

유니코드에서의 한글  (0) 2014.07.11
빅엔디안, 리틀엔디안  (0) 2014.03.07
서보 Servo  (0) 2012.03.07
CMYK <-> RGB  (0) 2011.10.09
HTML에 관한 레퍼런스 사이트를 오픈하였습니다.  (0) 2010.12.29
MVC in Rails  (0) 2010.05.26