upgrade libhangul-0.1.0
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 9 Jan 2013 06:04:52 +0000 (15:04 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 10 Jan 2013 00:48:56 +0000 (09:48 +0900)
Change-Id: Iffa902322555053473f933ad10c5e00b50d7a4c4

32 files changed:
AUTHORS [changed mode: 0755->0644]
COPYING [changed mode: 0755->0644]
ChangeLog [changed mode: 0755->0644]
Makefile.am [changed mode: 0755->0644]
NEWS [changed mode: 0755->0644]
README
autogen.sh [new file with mode: 0755]
compat [deleted file]
configure.ac [changed mode: 0755->0644]
data/Makefile.am [changed mode: 0755->0644]
data/hanja/Makefile.am [changed mode: 0755->0644]
data/hanja/hanja.txt
hangul/Makefile.am [changed mode: 0755->0644]
hangul/hangul-gettext.h [new file with mode: 0644]
hangul/hangul.h
hangul/hangulctype.c
hangul/hangulinputcontext.c
hangul/hangulinternals.h [changed mode: 0755->0644]
hangul/hangulkeyboard.h
hangul/hanjacompatible.h [changed mode: 0755->0644]
libhangul.pc.in [changed mode: 0755->0644]
packaging/libhangul.spec
po/LINGUAS [new file with mode: 0644]
po/Makevars [new file with mode: 0644]
po/POTFILES.in [new file with mode: 0644]
po/ko.po [new file with mode: 0644]
test/Makefile.am [changed mode: 0755->0644]
test/hangul.c
test/test.c
tools/Makefile.am [new file with mode: 0644]
tools/Makefile.in [new file with mode: 0644]
tools/hangul.c [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/COPYING b/COPYING
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 1407e70..03efbf7
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,556 @@
+------------------------------------------------------------------------
+r271 | krisna | 2011-10-17 00:03:13 +0900 (Mon, 17 Oct 2011) | 4 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+
+잘못 관리한 library version을 바로 잡음
+
+지금은 1.0.0 이 되어야 한다.
+
+------------------------------------------------------------------------
+r270 | krisna | 2011-10-16 20:53:51 +0900 (Sun, 16 Oct 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+
+release 0.1.0
+
+------------------------------------------------------------------------
+r269 | krisna | 2011-10-16 20:53:22 +0900 (Sun, 16 Oct 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/NEWS
+
+Update documents
+
+------------------------------------------------------------------------
+r268 | krisna | 2011-10-16 20:50:58 +0900 (Sun, 16 Oct 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/po/ko.po
+
+update po files
+
+------------------------------------------------------------------------
+r267 | krisna | 2011-09-07 23:43:20 +0900 (Wed, 07 Sep 2011) | 4 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangul.h
+   M /libhangul/trunk/hangul/hangulctype.c
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+deprecated 함수 제거
+
+다음 릴리스에서는 library version을 올릴 것이다.
+
+------------------------------------------------------------------------
+r266 | krisna | 2011-09-03 15:48:24 +0900 (Sat, 03 Sep 2011) | 5 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+
+gettext 호환 version을 0.18로 업데이트
+
+이하 버전에서는 MKINSTALLDIR 관련 에러가 난다.
+0.18 이하를 사용하는 사람이 별로 없길 바란다.
+
+------------------------------------------------------------------------
+r265 | krisna | 2011-08-28 23:05:03 +0900 (Sun, 28 Aug 2011) | 5 lines
+Changed paths:
+   M /libhangul/trunk/test/Makefile.am
+   M /libhangul/trunk/test/test.c
+
+test 코드에서 속편하게 wchar_t로 비교
+
+wchar_t 내용이 UCS-4라고 가정해서는 안되지만, GCC를 사용하는 경우에
+한해서 사용이 쉬우므로 이렇게 수정한다.
+
+------------------------------------------------------------------------
+r264 | krisna | 2011-08-28 22:15:44 +0900 (Sun, 28 Aug 2011) | 5 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangul.h
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+hangul_ic_is_transliteration() 함수 추가
+
+이 함수는 hangul_ic_process()에 키코드를 넘기기 전에
+normalize 과정에 필요한지 판단해주는 함수다.
+
+------------------------------------------------------------------------
+r263 | krisna | 2011-08-16 17:22:49 +0900 (Tue, 16 Aug 2011) | 5 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+Combination table을 IC에서 Keyboard로 옮김
+
+Combination table은 keyboard에 종속적인 정보이므로 HangulKeyboard에서
+참조하는 것이 바람직하다.
+
+------------------------------------------------------------------------
+r262 | krisna | 2011-07-18 23:30:24 +0900 (Mon, 18 Jul 2011) | 4 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+   M /libhangul/trunk/test/Makefile.am
+   M /libhangul/trunk/test/hangul.c
+   M /libhangul/trunk/tools/Makefile.am
+   M /libhangul/trunk/tools/hangul.c
+
+AM_ICONV 매크로 사용
+
+freebsd에서 컴파일 오류가 발생하는 것을 막기 위한 것
+
+------------------------------------------------------------------------
+r261 | krisna | 2011-07-18 00:34:11 +0900 (Mon, 18 Jul 2011) | 5 lines
+Changed paths:
+   M /libhangul/trunk/libhangul.pc.in
+   M /libhangul/trunk/test/Makefile.am
+   M /libhangul/trunk/tools/Makefile.am
+
+Use variable LIBINTL
+
+To compile with GNU gettext, we need libintl on freebsd.
+So it is safer to specify the variable LIBINTL which is set by AM_GNU_GETTEXT.
+
+------------------------------------------------------------------------
+r260 | krisna | 2011-03-11 00:02:11 +0900 (Fri, 11 Mar 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/test/test.c
+
+두벌식 테스트 추가
+
+------------------------------------------------------------------------
+r259 | krisna | 2011-03-11 00:01:20 +0900 (Fri, 11 Mar 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/autogen.sh
+   M /libhangul/trunk/configure.ac
+
+gettext 관련 파일을 업데이트하기 위해서 autopoint를 사용함
+
+------------------------------------------------------------------------
+r257 | krisna | 2011-01-02 23:57:43 +0900 (Sun, 02 Jan 2011) | 4 lines
+Changed paths:
+   M /libhangul/trunk/NEWS
+   M /libhangul/trunk/README
+
+release 0.0.12
+
+문서 업데이트
+
+------------------------------------------------------------------------
+r256 | krisna | 2011-01-02 23:25:18 +0900 (Sun, 02 Jan 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/tools/hangul.c
+
+copyright 문구 추가
+
+------------------------------------------------------------------------
+r255 | krisna | 2011-01-02 23:00:51 +0900 (Sun, 02 Jan 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/po/ko.po
+
+번역 업데이트
+
+------------------------------------------------------------------------
+r254 | krisna | 2011-01-02 22:36:45 +0900 (Sun, 02 Jan 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/tools/hangul.c
+
+메시지 업데이트
+
+------------------------------------------------------------------------
+r253 | krisna | 2011-01-02 16:51:10 +0900 (Sun, 02 Jan 2011) | 2 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+
+0.0.12 릴리스 준비
+
+------------------------------------------------------------------------
+r252 | krisna | 2010-12-29 23:30:34 +0900 (Wed, 29 Dec 2010) | 9 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   M /libhangul/trunk/tools/hangul.c
+
+hangul_ic_get_keyboard_name()의 리턴값을 로캘에 관계없이 UTF-8로 함
+
+hangul_ic_get_keyboard_name() 함수의 리턴값을 사용하는 곳의 대부분이 
+UTF-8인 경우에 더 사용하기 편리하다. nabi, ibus, scim, imhangul 등의 경우 
+결국 스트링을 UTF-8로 변환해야 하므로 여기에서 UTF-8을 리턴하면 코딩이 
+더 편리해진다. 단 tools/hangul.c 에서는 locale에 따른 변환을 해주어야
+하므로 약간 더 불편해지기는 하지만, 나머지에서 수정할 내용이 줄어들므로 
+이 편이 더 낫다.
+
+------------------------------------------------------------------------
+r251 | krisna | 2010-12-29 22:38:28 +0900 (Wed, 29 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/tools/Makefile.am
+   M /libhangul/trunk/tools/hangul.c
+
+gettext 적용
+
+------------------------------------------------------------------------
+r250 | krisna | 2010-12-29 16:54:27 +0900 (Wed, 29 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+세벌식 두벌 자판은 별로 중요하지 않은 자판이므로 순서를 아래로 낮춤
+
+------------------------------------------------------------------------
+r249 | krisna | 2010-12-29 00:51:48 +0900 (Wed, 29 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+자판 이름 시작 글자를 대문자로 바꿈
+
+------------------------------------------------------------------------
+r248 | krisna | 2010-12-28 16:03:44 +0900 (Tue, 28 Dec 2010) | 9 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+#315248 안마태 자판 추가
+
+안마태 자판에서 임의로 추가된 기호 부분을 제거하고, 대신 shift 상태에서도
+shift가 아닐때 글자가 나오도록 수정한다. 
+이전에 빠트렸던, OP의 [] 문자를 추가한다.
+자모의 이름이 Unicode와 맞지 않는 부분을 unicode 이름으로 바꾼다.
+안마태 자판에서 shift 상태에 배당되어 있지 않은 곳에 어떤 문자를 할당할지는
+좀더 토론을 거친후에 처리하는 편이 좋을 것이다.
+
+------------------------------------------------------------------------
+r247 | krisna | 2010-12-26 22:58:09 +0900 (Sun, 26 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/tools/hangul.c
+
+자동 순서 교정 기능을 끄는 옵션 --strict-order 추가
+
+------------------------------------------------------------------------
+r246 | krisna | 2010-12-26 21:59:54 +0900 (Sun, 26 Dec 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/Makefile.am
+
+테스트 디렉토리를 기본으로 빌드하지 않도록 바꿈
+
+별로 중요하지 않은 내용때문에 빌드 오류가 나는 문제로 수정이 필요한
+경우를 피하기 위한 것이다.
+
+------------------------------------------------------------------------
+r245 | krisna | 2010-12-26 21:54:23 +0900 (Sun, 26 Dec 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/tools/Makefile.am
+   M /libhangul/trunk/tools/hangul.c
+
+헤더 참조 경로를 상대 경로로 바꿈
+
+configure 디렉토리가 소스 디렉토리와 다른 경우에 에러가 발생한다.
+make distcheck를 하면 에러난다. $(top_srcdir)을 써도 되는데,
+그냥 쉽게 상대 경로로 참조하도록 수정한다.
+
+------------------------------------------------------------------------
+r244 | krisna | 2010-12-26 14:43:53 +0900 (Sun, 26 Dec 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+세벌식 옛글 자판의 배열을 아래한글과 동일하게 바꿈
+
+옛글 자판에 대해서는 공인된 기준이 없는 만큼 사용자가 많을 것이라 예상되는
+아래한글의 세벌식 자판과 같은 자판을 지원하는 것이 사용자에게 편리할 것이라
+생각한다.
+
+------------------------------------------------------------------------
+r243 | krisna | 2010-12-26 14:41:46 +0900 (Sun, 26 Dec 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/test/test.c
+
+두벌식과 두벌식 옛글 자판에 대한 테스트 케이스 추가
+
+계속 추가할 예정
+디버깅할때 편리하기 위해서 NOFORK 모드를 사용
+
+------------------------------------------------------------------------
+r242 | krisna | 2010-12-25 23:17:20 +0900 (Sat, 25 Dec 2010) | 9 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+두벌식에서 초성이 옛글에서만 사용되는 종성으로 변환되는 경우 처리
+
+ㅃㅉㄸ은 옛글 자모 글자인데, 이번에 두벌식 옛글자판을 구현하면서
+hangul_choseong_to_jongseong() 함수로 초성에서 종성으로 변환이 가능해진
+자모 글자다. 그런데 저 글자는 현대 한글에서는 유효하지 않은 종성이므로
+현대 한글 자판에서는 위 초성들이 종성으로 변환되어서는 안된다.
+그래서 combination_table을 비교하여 conjoinable 자모인지 아닌지에
+따라서 종성 변환을 할 것인지 말 것인지 처리한다.
+
+------------------------------------------------------------------------
+r241 | krisna | 2010-12-25 16:33:04 +0900 (Sat, 25 Dec 2010) | 8 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+hangul_combination_combine() 함수의 버그 수정
+
+hangul_combination_combine() 함수의 비교함수에서 두 key 값을 단순히
+뺄셈연산하여 리턴하게 되면 두수의 크기차 signed int를 넘어서는 경우에
+음수로 연산될 수 있어서 위험하다. 부등호를 이용하여 비교연산으로 처리한다.
+Unicode 5.2에서 추가된 자모들중 U+A960, U+D7B0 영역의 문자들을 조합하지
+못하는 문제 수정
+
+------------------------------------------------------------------------
+r240 | krisna | 2010-12-25 15:21:40 +0900 (Sat, 25 Dec 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+아래한글과 같은 아래아 조합규칙 추가
+
+아래한글에서는 ㅏ+ㅏ를 아래아로 조합하는 규칙이 있다. 
+옛한글 입력 편의성을 위해서 아래한글과 같이 ㅏ+ㅏ를 아래아로 변환하는
+규칙을 추가한다.
+
+------------------------------------------------------------------------
+r239 | krisna | 2010-12-25 14:36:13 +0900 (Sat, 25 Dec 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+옛한글 조합테이블에 빠진 부분 추가
+
+모음 U+116A, U+116B, U+1170, U+118B, U+D7B6를 조합하는 룰이 빠져있어서
+새로 추가한다. 아마도 스크립트로 생성시에 제대로 처리되지 못한 부분이
+있었던 것 같다.
+
+------------------------------------------------------------------------
+r238 | krisna | 2010-12-25 14:11:01 +0900 (Sat, 25 Dec 2010) | 11 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulctype.c
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+옛이응이 이응으로 처리되는 부분 수정
+
+http://www.unicode.org/Public/UNIDATA/NamesList.txt 파일의 내용을 
+이용해서 자모 조합 테이블을 생성한 결과에 문제가 있다.
+위 파일에서는 U+11EC - U+11EF 부분의 이름을 옛이응으로 하지 않고 
+이응으로 되어 있다. 그래서 이 파일로 부터 생성한 조합테이블에서는
+이응 + 이응이 U+11EE가 나오는 문제가 있다. 
+그래서 이 부분은 손으로 직접 수정했다.
+Unicode 5.2에서 정의된 내용에 따르면 U+11EC - U+11EF 부분은 옛이응으로
+처리하는 것이 맞다.
+
+------------------------------------------------------------------------
+r237 | krisna | 2010-12-25 13:40:12 +0900 (Sat, 25 Dec 2010) | 4 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulctype.c
+
+hangul_is_jongseong() 함수 버그 수정
+
+236에서 잘못 고친 부분 수정
+
+------------------------------------------------------------------------
+r236 | krisna | 2010-12-25 13:24:52 +0900 (Sat, 25 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulctype.c
+
+Unicode 5.2에서 확장된 한글 자모 영역을 제대로 확인하지 못하는 문제 수정
+
+------------------------------------------------------------------------
+r235 | krisna | 2010-12-25 12:37:02 +0900 (Sat, 25 Dec 2010) | 11 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulctype.c
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   M /libhangul/trunk/hangul/hangulinternals.h
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+한글 두벌식 옛글 자판 초기 구현
+
+자판의 배열을 아래한글의 두벌식 옛글자판과 동일하게 맞추었다.
+초성과 종성을 뒤바꾸는 코드에서 UNICODE 5.2 버전의 옛한글을 지원하도록
+하였다. 기존 두벌식에서 사용하던 hangul_jongseong_dicompose() 함수로는
+옛한글 처리를 할 수가 없으므로 새로이 hangul_jongseong_get_diff() 함수를 
+구현하고, 이 함수를 이용하여 구현을 변경하였다.
+그러나 아직 버그가 있으므로 차츰 수정해 나가도록 한다.
+또한 옛한글을 지원하는 과정에서 현대 한글 두벌식 자판에도 영향을 미쳤으므로
+이 역시 차츰 수정해 나가도록 한다.
+
+------------------------------------------------------------------------
+r234 | krisna | 2010-12-24 23:37:42 +0900 (Fri, 24 Dec 2010) | 4 lines
+Changed paths:
+   M /libhangul/trunk/hangul/Makefile.am
+
+hangul-gettext.h 소스 리스트에 추가
+
+이 파일이 빠지면 make dist에서 에러남
+
+------------------------------------------------------------------------
+r233 | krisna | 2010-12-19 13:53:20 +0900 (Sun, 19 Dec 2010) | 11 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   M /libhangul/trunk/test/test.c
+
+완성 음절로 표현이 불가능한 경우 한글 자모로 표현
+
+지금까지는 완성 음절로 표현이 불가능한 중성 + 종성 같은 음절의 경우
+호환자모 중성과 종성을 나열하여 표현하였는데, 이제는 한글 자모 영역의
+글자를 사용하여 초성채움 + 중성 + 종성으로 표현한다.
+이렇게 기능을 수정하면, 옛한글 자판의 경우도 hangul_buffer_get_string()
+함수를 그대로 사용할 수 있으므로 자판 관리가 좀더 편리해지는 측면이 있다.
+그러나 단점으로 세벌식에서 모아치기 기능을 활용하는 중에 한글 자모로 표현한
+글자가 나타날 수 있는데, 이때에 이 글자를 제대로 렌더링 하지 못할 가능성이
+있다.
+
+------------------------------------------------------------------------
+r232 | krisna | 2010-12-12 20:45:52 +0900 (Sun, 12 Dec 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+
+hangul_ic_select_keyboard() 함수에서 지정된 키보드를 못찾은 경우
+한글 자판이 설정되지 않는 문제 수정
+
+자판 찾기에 실패한 경우 기본자판으로 두벌식 자판을 설정함
+
+------------------------------------------------------------------------
+r231 | krisna | 2010-12-12 20:36:58 +0900 (Sun, 12 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/autogen.sh
+
+autotools 관련 파일을 링크보다는 복사하도록 함
+
+------------------------------------------------------------------------
+r230 | krisna | 2010-12-12 20:01:02 +0900 (Sun, 12 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/Makefile.am
+
+m4/ChangeLog가 없어서 make dist 에서 오류 발생함
+
+------------------------------------------------------------------------
+r229 | krisna | 2010-12-12 19:52:23 +0900 (Sun, 12 Dec 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/Makefile.am
+   M /libhangul/trunk/autogen.sh
+   M /libhangul/trunk/configure.ac
+   M /libhangul/trunk/hangul/Makefile.am
+   A /libhangul/trunk/hangul/hangul-gettext.h
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   A /libhangul/trunk/po
+   A /libhangul/trunk/po/LINGUAS
+   A /libhangul/trunk/po/Makevars
+   A /libhangul/trunk/po/POTFILES.in
+   A /libhangul/trunk/po/ko.po
+
+gettext 적용
+
+------------------------------------------------------------------------
+r228 | krisna | 2010-12-12 19:08:30 +0900 (Sun, 12 Dec 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/tools/Makefile.am
+   A /libhangul/trunk/tools/hangul.c
+
+한글 자판을 영문 상태로 친 스트링을 한글로 변환해주는 프로그램 구현
+
+예를 들어
+ hangul -i dkssudgktpdy 를 실행하면 "안녕하세요"를 출력,
+ echo dkssudgktpdy | hangul  을 실행하면 "안녕하세요"를 출력한다.
+
+------------------------------------------------------------------------
+r227 | krisna | 2010-11-14 20:35:48 +0900 (Sun, 14 Nov 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangul.h
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+   M /libhangul/trunk/test/test.c
+
+한글 키보드의 리스트와 이름을 가져오는 인터페이스 구현
+
+------------------------------------------------------------------------
+r225 | krisna | 2010-07-17 23:47:24 +0900 (Sat, 17 Jul 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/configure.ac
+
+release 0.0.11
+
+------------------------------------------------------------------------
+r224 | krisna | 2010-07-17 23:42:41 +0900 (Sat, 17 Jul 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/NEWS
+
+update document
+
+------------------------------------------------------------------------
+r223 | krisna | 2010-07-17 01:08:47 +0900 (Sat, 17 Jul 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+옛한글 조합 테이블의 주석을 나머지와 테이블과 같은 형식으로 변경함
+
+------------------------------------------------------------------------
+r222 | krisna | 2010-07-17 00:50:29 +0900 (Sat, 17 Jul 2010) | 2 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+유니코드 5.1에 따라 새로 추가된 옛한글 자모에 대한 조합 규칙 추가
+
+------------------------------------------------------------------------
+r221 | krisna | 2010-04-26 22:49:45 +0900 (Mon, 26 Apr 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulinputcontext.c
+   M /libhangul/trunk/hangul/hangulkeyboard.h
+
+안마태 자판 구현 추가 #315248
+ * Homin Lee님의 패치를 약간 수정하여 적용함
+   일부 대분자에 임의로 할당된 기호 글자들 제거
+   주석 포맷이 틀린곳 수정
+
+------------------------------------------------------------------------
+r220 | krisna | 2010-04-04 19:55:37 +0900 (Sun, 04 Apr 2010) | 6 lines
+Changed paths:
+   M /libhangul/trunk/hangul/hangulctype.c
+
+버그수정: #315256 한글 종성 입력시 글꼴 랜더링 문제
+ * 세벌식 자판에서 종성만 입력하는 경우 U+1100 자모로 출력하는 문제임
+   r201에서 hangul_jamo_to_cjamo() 함수의 테이블을 하나로 합치면서
+   잘못하여 데이터를 손실하여 발생한 문제
+   빠진 종성들을 compatibility jamo로 변환할 수 있도록 함
+
+------------------------------------------------------------------------
+r219 | krisna | 2010-03-12 21:08:03 +0900 (Fri, 12 Mar 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/freq-hanja.txt
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+버그수정: #315200 KS X 1002 한자를 좀 더 앞쪽으로
+ * 한자의 빈도에 따른 우선 순위를 조정하여 KS X 1002 에서 지정한 한자를 좀더 
+   앞쪽으로 배치되게 수정함
+ * 작업을 해주신 박원규님에게 감사드립니다.
+
+------------------------------------------------------------------------
+r218 | krisna | 2010-03-10 00:17:53 +0900 (Wed, 10 Mar 2010) | 5 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+버그수정: #315197 중복된 한자 단어
+ * 반복되어 들어 있는 단어 제거
+   아마도 변환 과정에서 오류가 있었던 것 같다.
+   아니면 호환한자 관련한 문제가 있었던 것인지도 모르겠다.
+
+------------------------------------------------------------------------
+r217 | krisna | 2010-03-10 00:11:40 +0900 (Wed, 10 Mar 2010) | 3 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+버그수정: #315196 포주:庖廚:푸주의 원말
+ 텍스트 변환에서 발생한 것으로 보이는 오류 수정
+
+------------------------------------------------------------------------
+r216 | krisna | 2009-12-06 16:44:22 +0900 (Sun, 06 Dec 2009) | 2 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+잘못된 글자 수정: 반대:胖大
+
+------------------------------------------------------------------------
+r215 | krisna | 2009-11-07 22:31:44 +0900 (Sat, 07 Nov 2009) | 2 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+한자어중 한자로 표기 되지 않은 것 한자로 바꿈
+
+------------------------------------------------------------------------
+r214 | krisna | 2009-11-07 21:35:31 +0900 (Sat, 07 Nov 2009) | 2 lines
+Changed paths:
+   M /libhangul/trunk/data/hanja/hanja.txt
+
+거칠부의 한자는 삼국사기의 기록에 따라 居柒夫로 한다.
+
 ------------------------------------------------------------------------
 r212 | krisna | 2009-10-31 14:32:09 +0900 (Sat, 31 Oct 2009) | 3 lines
 Changed paths:
old mode 100755 (executable)
new mode 100644 (file)
index 339e67d..9b48d50
@@ -1,15 +1,24 @@
-SUBDIRS = hangul data test
+SUBDIRS = hangul data tools po
+DIST_SUBDIRS = hangul data tools po test
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libhangul.pc
 
 EXTRA_DIST = \
+    config.rpath \
     doc/Makefile \
     doc/Doxyfile.in \
-    doc/mainpage.dox
+    doc/mainpage.dox \
+    test/Makefile.am \
+    test/Makefile.in \
+    test/hangul.c \
+    test/hanja.c \
+    test/test.c
 
 log:
        unset LC_ALL; \
        export LANG=C ; \
        export LC_CTYPE=ko_KR.UTF-8; \
        svn log -v > ChangeLog
+
+ACLOCAL_AMFLAGS = -I m4
diff --git a/NEWS b/NEWS
old mode 100755 (executable)
new mode 100644 (file)
index 4a389cf..49a8fe3
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,28 @@
+0.1.0
+ * add new API for keycode normalization
+ * remove deprecated API
+ * add supports for freebsd
+ * update some test codes
+
+0.0.12
+ * add dubeolsik yetgeul keyboard
+ * make sebeolsik yetgeul keyboard layout conform to HWP
+ * add API to get builtin keyboard list
+ * use Unicode jamo for incomplete syllable
+ * gettextize
+ * bug fix for Unicode 5.2
+ * fix wrong characters in ahnmatae(#31548)
+ * add command line tool hangul
+
+0.0.11
+ * fixed preedit string bug: #315256
+ * added Ahnmatae method
+ * updated hanja frequency data and reordered hanja table according to it:
+   #315200
+ * fixed bugs in hanja data
+ * updated old hangul jamo combination table according to Unicode standard 5.2:
+   #315127
+
 0.0.10
  * implemented new logic romaja method
  * updated to support the new Unicode standard 5.2
diff --git a/README b/README
index 4e13c2214215898cb11016c006d9e1fcb63fcfdb..66517c81395cee8aa342b408d2e0de9f205bdc27 100644 (file)
--- a/README
+++ b/README
@@ -8,16 +8,13 @@ How to build
  # make
 
 Download:
- * http://kldp.net/frs/?group_id=362
+ * http://kldp.net/projects/hangul/download
 
 Bug report:
- * bug tracker: http://kldp.net/tracker/?group_id=362
+ * bug tracker: http://kldp.net/projects/hangul/bugs
 
-Mailing list
- * mailing list: http://lists.kldp.net/mailman/listinfo/hangul-hackers
- * mailing list archive: http://lists.kldp.net/pipermail/hangul-hackers/
+Forum:
+ * http://kldp.net/projects/hangul/forum
 
 Web sites
- * Home page: http://hangul.kldp.net/
  * Project page: http://kldp.net/projects/hangul/
- * Wiki page: http://wiki.kldp.org/wiki.php/libhangul
diff --git a/autogen.sh b/autogen.sh
new file mode 100755 (executable)
index 0000000..9ff6c9c
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+
+test -f ChangeLog || touch ChangeLog
+
+#libtoolize=`which glibtoolize`
+#if test -z "$libtoolize"; then
+#    libtoolize=libtoolize
+#fi
+
+autopoint --force
+libtoolize --automake --copy --force
+aclocal $ACLOCAL_AMFLAGS
+autoheader
+automake --add-missing --copy
+autoconf
diff --git a/compat b/compat
deleted file mode 100644 (file)
index b8626c4..0000000
--- a/compat
+++ /dev/null
@@ -1 +0,0 @@
-4
old mode 100755 (executable)
new mode 100644 (file)
index e4434cf..8b389be
@@ -2,15 +2,15 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(libhangul, 0.0.10, http://kldp.net/projects/hangul/)
+AC_INIT(libhangul, 0.1.0, http://kldp.net/projects/hangul/)
 AM_INIT_AUTOMAKE
 AC_CONFIG_SRCDIR([hangul/hangul.h])
 AC_CONFIG_HEADER([config.h])
 
 # library version
 LIBHANGUL_CURRENT=1
-LIBHANGUL_REVISION=2
-LIBHANGUL_AGE=1
+LIBHANGUL_REVISION=0
+LIBHANGUL_AGE=0
 
 AC_SUBST(LIBHANGUL_CURRENT)
 AC_SUBST(LIBHANGUL_REVISION)
@@ -27,6 +27,7 @@ AC_PROG_INSTALL
 # Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS([stdlib.h string.h limits.h])
+AC_CHECK_HEADERS([langinfo.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_HEADER_STDBOOL
@@ -41,21 +42,32 @@ AC_FUNC_MMAP
 AC_FUNC_REALLOC
 AC_CHECK_FUNCS([munmap])
 AC_CHECK_FUNCS([strcasecmp])
+AC_CHECK_FUNCS([nl_langinfo])
+
+# Checks for gettext stuff
+GETTEXT_PACKAGE="$PACKAGE"
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", gettext package name)
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION(0.18)
+AM_ICONV
 
 # Checks for unit test framework
-#PKG_PROG_PKG_CONFIG
-#if test -n "$PKG_CONFIG"; then
-#    PKG_CHECK_EXISTS(check, [ PKG_CHECK_MODULES([CHECK], [check]) ])
-#fi
+PKG_PROG_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS(check, [ PKG_CHECK_MODULES([CHECK], [check]) ])
+fi
 
 AC_CONFIG_FILES([
 Makefile
-hangul/Makefile
 data/Makefile
 data/hanja/Makefile
-test/Makefile
 doc/Doxyfile
+hangul/Makefile
 libhangul.pc
+po/Makefile.in
+test/Makefile
+tools/Makefile
 ])
 
 AC_OUTPUT
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 78d8e812d0b019115019c7850965d5241b7e4f3f..007645a58da863b06fb54923b3362718b53d552d 100644 (file)
 가:茄:가지 가
 가:痂:헌데 딱지 가
 가:跏:책상다리할 가, 도사리어 앉을 가
-가:椵:
-가:叚:
-가:価:
 가:斝:옥잔 가
 가:葭:갈대 가
 가:舸:큰 배 가
 가:笳:갈잎피리 가
 가:哿:좋을 가
-가:猳:
-가:髂:
 가:坷:험할 가
 가:檟:오동나무 가
 가:謌:歌와 同字
 가:珈:머리꾸미개 가
-가:瘸:
 가:砢:
+가:佉:
+가:呿:
+가:榎:檟와 同字
+가:仮:假의 略字
+가:傢:세간 가
+가:咖:커피차 가, 커피의 음차로 쓰는자 가
+가:瘕:
+가:耞:도리깨 가
+가:宊:
+가:椵:
+가:叚:
+가:価:
+가:猳:
+가:髂:
+가:瘸:
 가:鴐:
 가:䴥:
 가:拁:
 가:㤎:
-가:佉:
-가:呿:
-가:榎:檟와 同字
 가:榢:
 가:毠:
 가:溊:
 가:牁:
 가:豭:
-가:仮:假의 略字
 가:槚:
 가:诃:
 가:贾:
 가:镓:
 가:驾:
 가:鲄:
-가:傢:세간 가
-가:咖:커피차 가, 커피의 음차로 쓰는자 가
-가:瘕:
-가:耞:도리깨 가
-가:宊:
 가:婽:
 가:尜:
 가:岢:
 각:恪:삼갈 각, 공경할 각
 각:殼:껍질 각
 각:慤:삼갈 각, 정성 각
-각:阁:
-각:愨:
 각:榷:
-각:覚:
 각:骼:
 각:桷:서까래 각
 각:礭:
 각:搉:칠 각
-각:礐:
 각:卻:却의 本字
+각:躩:
+각:咯:토할 각
+각:埆:메마를 각
+각:擱:놓을 각
+각:塙:
+각:阁:
+각:愨:
+각:覚:
+각:礐:
 각:殻:
 각:胳:
-각:躩:
 각:傕:
 각:崅:
 각:茖:
-각:咯:토할 각
-각:埆:메마를 각
-각:擱:놓을 각
 각:佫:
 각:墧:
 각:斍:
 각:悫:
 각:搁:
 각:觉:
-각:塙:
 각:愙:
 각:捔:
 각:斠:
 간:磵:산골 시내 간, 석간수 간, 산골물 간
 간:桿:줄기
 간:稈:짚 간, 볏짚 간
-간:间:
-간:恳:
-간:旰:
 간:赶:달릴 간
 간:衎:즐길 간, 바를 간
-간:简:
 간:慳:아낄 간
 간:榦:幹의 本字
 간:玕:옥돌 간
+간:迀:구할 간, 권할 간
+간:偘:侃과 同字
+간:秆:稈과 同字
+간:栞:도표 간
+간:茛:독초이름 간, 미나리아재비 간
+간:齦:물을 간
+간:间:
+간:恳:
+간:旰:
+간:简:
 간:㸔:
 간:簳:
 간:瞯:
 간:㵎:
 간:趕:
 간:暕:
-간:迀:구할 간, 권할 간
 간:盰:
 간:覸:
 간:顅:
 간:芉:
-간:偘:侃과 同字
 간:囏:
 간:涆:
 간:貇:
 간:鬝:
 간:㿻:
-간:秆:稈과 同字
 간:悭:
 간:拣:
 간:擀:
 간:踬:
 간:锏:
 간:龈:
-간:栞:도표 간
-간:茛:독초이름 간, 미나리아재비 간
-간:齦:물을 간
 간:倝:
 간:墹:
 간:姧:
 갈:碣:비 갈, 우뚝선 돌 갈, 동해의 산이름 갈
 갈:蝎:전갈 갈, 빈대 갈
 갈:乫:땅이름 갈
-갈:暍:
 갈:羯:불친 양 갈, 땅이름 갈
-갈:渇:
 갈:秸:볏짚 갈, 짚 고갱이 갈
-갈:輵:
-갈:轕:
 갈:鶡:
 갈:楬:패를 써서 표시할 갈
-갈:鍻:
-갈:鹖:
 갈:噶:벼슬이름 갈, 땅이름 갈
 갈:蠍:전갈 갈
+갈:暍:
+갈:渇:
+갈:輵:
+갈:轕:
+갈:鍻:
+갈:鹖:
 갈:圿:
 갈:嵑:
 갈:嶱:
 감:嵌:깊은 골 감, 곁굴 감, 깊은 산 감, 산골짜기 감
 감:橄:감람나무 감
 감:龕:취할 감, 이길 감, 감실 감
-감:减:
-감:监:
 감:歛:
 감:酣:
 감:撼:흔들 감, 움직일 감, 깨뜨릴 감
-감:瑊:
 감:欿:서운할 감, 찌푸릴 감, 걱정할 감
+감:减:
 감:弇:뚜껑 감, 사람이름 감
-감:鍳:
 감:嵁:산 험할 감
 감:闞:
 감:憨:어리석을 감, 미련할 감
+감:澉:
+감:轗:
+감:坩:도가니 감
+감:埳:구덩이 감
+감:泔:
+감:淦:
+감:矙:
+감:鹻:
+감:监:
+감:瑊:
+감:鍳:
 감:砍:
 감:椷:
 감:歁:
-감:澉:
 감:鹼:
-감:轗:
 감:堿:
 감:塪:
 감:惂:
 감:鳡:
 감:鹐:
 감:龛:
-감:坩:도가니 감
-감:埳:구덩이 감
-감:泔:
-감:淦:
-감:矙:
-감:鹻:
 감:佄:
 감:冚:
 감:凲:
 갑:鉀:갑옷 갑
 갑:匣:궤 갑, 상자 갑, 궤짝 갑
 갑:胛:어깻죽지 갑
+갑:韐:가죽바지 갑
 갑:瞌:
 갑:帢:
 갑:㠷:
 갑:钾:
 갑:闸:
-갑:韐:가죽바지 갑
 갑:厒:
 갑:搕:
 갑:敆:
 강:堈:언덕 강, 밭 두둑 강, 독 강
 강:畺:疆과 同字, 지경 강
 강:鱇:천징어 강
-강:強:강할
 강:杠:외나무 다리 강, 깃대 강, 상 앞 가로막대 강, 올릴 강
 강:僵:엎드러질 강, 쓰러질 강
-강:冈:
-강:奋:
 강:忼:강개할 강, 뜻이 크고 기개있을 강, 탄식할 강
 강:跫:
 강:橿:참죽나무 강, 호미자루 강, 사닥다리 강, 억셀 강
 강:韁:고삐 강
 강:茳:강리풀 강
 강:壃:疆과 同字
-강:棡:
 강:扛:마주 들 강
 강:釭:
-강:掆:
 강:殭:죽어 썩지 않을 강, 마른 누에 강
 강:矼:돌다리 강, 징검다리 강, 성실할 강
 강:繈:繦의 本字
-강:犺:
-강:玒:
-강:糨:
-강:繮:
 강:穅:겨 강, 악기이름 강
 강:罡:강별 강
 강:羗:羌과 同字
 강:羫:밭 갈 강
+강:傋:아첨 아니할 강
+강:豇:광저기 강
+강:強:강할
+강:冈:
+강:奋:
+강:棡:
+강:掆:
+강:犺:
+강:玒:
+강:糨:
+강:繮:
 강:峕:
 강:嵻:
 강:鏹:
 강:讲:
 강:钢:
 강:镪:
-강:傋:아첨 아니할 강
-강:豇:광저기 강
 강:冮:
 강:勥:
 강:匟:
 개:恝:걱정 없을 개
 개:疥:옴 개
 개:槩:槪와 同字
-개:个:
-개:丐:
-개:葢:
 개:剴:낫 개, 가까울 개, 간절할 개
 개:玠:큰 서옥 개
 개:揩:문지를 개, 문질러 훔칠 개
-개:㮣:
 개:匃:청구할 개, 줄 개, 빌 개
-개:嘅:
 개:闓:열 개, 풀 개, 활깍지 개
+개:磕:돌 부딪는 소리 개
+개:个:
+개:丐:
+개:葢:
+개:㮣:
+개:嘅:
 개:喈:
 개:湝:
 개:祴:
 개:暟:
 개:蚧:
 개:稭:
-개:磕:돌 부딪는 소리 개
 개:概:
 개:烗:
 개:䁗:
 갱헌:羹獻:
 갱히:更히:
 갹:醵:술추렴
-갹:噱:
 갹:蹻:
+갹:噱:
 갹:谻:
 갹:臄:
 갹:勪:
 거:踞:걸터앉을 거
 거:鋸:톱 거, 다리 꺾는 형벌 거
 거:迲:
-거:舉:
-거:詎:
 거:裾:옷 뒷자락 거
 거:袪:소매 거, 소매 아귀 거
 거:蘧:패랭이꽃 거, 석죽화 거, 마음에 든든할 거
-거:琚:
-거:柜:
 거:莒:모시풀 거, 나라이름 거, 고을이름 거
-거:㨿:
 거:蕖:연꽃 거
 거:秬:검은 기장 거
+거:籧:대자리 거, 천상바라기 거, 양잠기 거
+거:駏:튀기 거, 거공벌레 거
+거:腒:건치 거, 꿩 포 거
+거:苣:상추 거, 검은 깨 거
+거:胠:열 거, 갈비 거
+거:筥:쌀 담는 광주리 거, 볏단 거
+거:佉:나라이름 거
+거:呿:입 딱 벌일 거
+거:昛:밝을 거
+거:舉:
+거:詎:
+거:琚:
+거:柜:
+거:㨿:
 거:㩀:
 거:耟:
 거:簴:
 거:㞐:
 거:鐻:
-거:籧:대자리 거, 천상바라기 거, 양잠기 거
 거:璖:
-거:駏:튀기 거, 거공벌레 거
 거:虡:
-거:腒:건치 거, 꿩 포 거
-거:苣:상추 거, 검은 깨 거
 거:弆:
-거:胠:열 거, 갈비 거
 거:磲:
 거:阹:
-거:筥:쌀 담는 광주리 거, 볏단 거
 거:椐:
 거:璩:
-거:佉:나라이름 거
-거:呿:입 딱 벌일 거
 거:佢:
 거:俥:
 거:壉:
 거:钜:
 거:键:
 거:锯:
-거:昛:밝을 거
 거:伡:
 거:凥:
 거:勮:
 거치할인제도:据置割引制度:
 거친면:거친綿:
 거칠봉:居七峰:
-ê±°ì¹ ë¶\80:å±\85æ¼\86夫:
+ê±°ì¹ ë¶\80:å±\85æ\9f\92夫:
 거칠산군:居漆山郡:
 거침:巨浸:
 거탄:巨彈:
 건:褰:바지 건, 걷을 건, 발 걷을 건
 건:謇:말 더듬거릴 건, 바른말할 건
 건:鞬:칼집 건, 동개 건
+건:揵:멜 건, 막을 건, 들 건
+건:犍:불친 소 건, 짐승이름 건, 촉나라 고을이름 건
+건:睷:눈으로 세어볼 건
 건:搴:
 건:鶱:
-건:揵:멜 건, 막을 건, 들 건
 건:䖍:
 건:諐:
 건:湕:
-건:犍:불친 소 건, 짐승이름 건, 촉나라 고을이름 건
 건:徤:
-건:睷:눈으로 세어볼 건
 건:乹:
 건:寋:
 건:㨜:
 걸:偈:힘 빼두를 걸, 빠를 걸, 헌걸찰 걸
 걸:朅:갈 걸
 걸:乬:갈 걸
+걸:榤:닭의 홰 걸
 걸:嵥:
 걸:㐦:
 걸:滐:
-걸:榤:닭의 홰 걸
 걸:搩:
 걸:櫭:
 걸:芞:
 검:瞼:눈시울 검
 검:撿:잡을 검, 구속할 검, 관찰할 검, 비교할 검
 검:芡:마름 검, 가시연밥 검
+검:岒:
 검:臉:
 검:劎:
 검:俭:
 검:睑:
 검:脸:
 검:钤:
-검:岒:
 검:仱:
 검:剱:
 검:劔:
 겁:劫:위협할 겁, 겁탈할 겁, 부지런할 겁, 대궐 층계 겁, 겁 겁, 화재 겁, 빼앗을 겁
 겁:迲:자내
 겁:刦:겁탈할 겁, 구속할 겁
+겁:刧:刦의 俗字
 겁:刼:
 겁:㤼:
 겁:㥘:
 겁:袷:
-겁:刧:刦의 俗字
 겁:跲:
 겁:昅:
 겁:抾:
 격:檄:격서 격, 격문 격, 과격할 격
 격:膈:명치 격
 격:覡:박수 격, 남자무당 격
-격:撃:
 격:翮:
-격:繳:
 격:骼:마른 뼈 격, 드러난 뼈 격, 짐승의 뼈 격
 격:闃:고요할 격
 격:鬲:오지병 격, 땅이름 격, 다리굽은솥 격
+격:挌:칠 격, 들 격
+격:鴃:왜가리 격, 때까치 격
+격:毄:맞부딛는 소리 격, 충돌할 격, 창 격
+격:撃:
+격:繳:
 격:閴:
 격:綌:
 격:鵙:
-격:挌:칠 격, 들 격
-격:鴃:왜가리 격, 때까치 격
 격:愅:
 격:滆:
 격:薂:
 격:觋:
 격:阒:
 격:䴗:
-격:毄:맞부딛는 소리 격, 충돌할 격, 창 격
 격:呄:
 격:嗝:
 격:垎:
 견:繭:고치 견, 발 부르틀 견, 목 쉴 견, 비단 견
 견:俔:
 견:蠲:밝을 견, 조촐할 견, 반딧불 견
-견:牵:
 견:畎:밭 도랑 견, 산골 도랑 견
 견:縳:
 견:狷:고집스러울 견, 조수할 견, 편협할 견
 견:繾:곡진할 견, 마지 않을 견
+견:筧:대 홈통 견
+견:羂:걸 견, 걸릴 견
+견:樫:떡갈나무 견
+견:鰹:큰 가물치 견, 물치 견, 강고도리 견
+견:牵:
 견:掔:
 견:汧:
 견:岍:
 견:縴:
 견:梘:
 견:罥:
-견:筧:대 홈통 견
-견:羂:걸 견, 걸릴 견
 견:汱:
 견:甽:
 견:詃:
 견:鲣:
 견:鹃:
 견:䌸:
-견:樫:떡갈나무 견
-견:鰹:큰 가물치 견, 물치 견, 강고도리 견
 견:儙:
 견:幵:
 견:悓:
 결:訣:이별할 결, 열결할 결, 사례할 결, 비결 결
 결:拮:길거할 결, 열심히 일할 결
 결:抉:긁을 결, 당길 결
-결:决:
 결:闋:쉴 결, 다할 결, 풍류 마칠 결, 문 닫을 결
 결:觖:서운할 결, 들쳐낼 결, 바랄 결
 결:絜:
 결:玦:옥패 결, 활 깍지 결
+결:鴃:
+결:决:
 결:鴂:
 결:鈌:
 결:駃:
-결:鴃:
 결:袺:
 결:刔:
 결:洯:
 겸:嗛:부족히 여길 겸, 겸손 겸, 입에 밥 물고 있을 겸
 겸:縑:합사비단 겸
 겸:傔:겸종 겸
-겸:㻩:
 겸:拑:자갈 먹일 겸
+겸:檶:
+겸:鹻:
+겸:黚:얕은 금향빛 겸
+겸:鼸:두더쥐 겸
+겸:岒:
+겸:㻩:
 겸:鶼:
 겸:缣:
 겸:谦:
 겸:钳:
 겸:鳒:
 겸:鹣:
-겸:檶:
-겸:鹻:
-겸:黚:얕은 금향빛 겸
-겸:鼸:두더쥐 겸
-겸:岒:
 겸:嵰:
 겸:槏:
 겸:羬:
 경:暻:밝을 경
 경:俓:徑과 同字, 곧을 경
 경:倞:굳셀 경
-경:経:
-경:軽:
 경:罄:빌 경
-경:亰:
 경:扃:빗장 경
 경:竸:競과 同字
 경:冏:빛날 경
 경:惸:근심할 경
 경:畊:耕의 古字
 경:鯁:생선뼈 경
-경:獍:
 경:哽:목멜 경
 경:檠:도지개 경
 경:綆:두레박줄 경
 경:黥:묵형할 경
-경:璚:
 경:褧:홑옷 경
-경:曔:
-경:㯳:
 경:謦:기침 경
 경:駉:목장 경
-경:澃:
-경:挭:
 경:剄:목 벨 경
 경:熲:빛날 경
+경:憼:공경할 경
+경:焭:근싱할 경
+경:顈:홑옷 경
+경:経:
+경:軽:
+경:亰:
+경:獍:
+경:璚:
+경:曔:
+경:㯳:
+경:澃:
+경:挭:
 경:埛:
 경:麖:
 경:燝:
 경:鲸:
 경:鹒:
 경:䌹:
-경:憼:공경할 경
-경:焭:근싱할 경
-경:顈:홑옷 경
 경:儝:
 경:冂:멀다
 경:冋:
 경자자:庚子字:
 경자제:京子弟:
 경작:耕作:
-경작강제:경작强制:
+경작강제:耕作强制:
 경작공:京作貢:
 경작공동체:耕作共同體:
 경작권:耕作權:
-경작권지:경작權地:
-경작기:경작機:
+경작권지:耕作權地:
+경작기:耕作機:
 경작면적:耕作面積:
 경작물:耕作物:
-경작법:경작法:
+경작법:耕作法:
 경작자:耕作者:
 경작제도:耕作制度:
 경작지:耕作地:
 경작지주:耕作地主:
-경작한계:경작限界:
+경작한계:耕作限界:
 경작한계지:耕作限界地:
 경잠:耕蠶:
 경잠과:耕蠶科:
 경쟁입찰:競爭入札:
 경쟁자:競爭者:
 경쟁적:競爭的:
-경쟁적공존:경쟁적共存:
+경쟁적공존:競爭的共存:
 경쟁적사회주의:競爭的社會主義:
 경쟁전:경쟁戰:
 경저:京邸:
 경제과학위원회:經濟科學委員會:
 경제관:經濟觀:
 경제관계사부:經濟關係四部:
-경제관계장관:경제관계長官:
+경제관계장관:經濟關係長官:
 경제관념:經濟觀念:
-경제광물:경제鑛物:
+경제광물:經濟鑛物:
 경제교서:經濟敎書:
 경제구조:經濟構造:
 경제국:經濟國:
-경제국:경제局:
-경제국가설:경제국가說:
+경제국:經濟局:
+경제국가설:經濟國家說:
 경제국장:經濟局長:
 경제권:經濟權:
 경제권:經濟圈:
 경제권리의무헌장:經濟權利義務憲章:
 경제기구:經濟機構:
-경제기획:경제企劃:
-경제기획관:경제기획官:
+경제기획:經濟企劃:
+경제기획관:經濟企劃官:
 경제기획국:經濟企劃局:
 경제기획원:經濟企劃院:
-경제기획원장관:경제기획원長官:
+경제기획원장관:經濟企劃院長官:
 경제난:經濟難:
 경제난민:經濟難民:
 경제단위:經濟單位:
-경제단체:경제團體:
-경제단체연합회:경제단체聯合會:
-경제대국:경제大國:
+경제단체:經濟團體:
+경제단체연합회:經濟團體聯合會:
+경제대국:經濟大國:
 경제도시:經濟都市:
 경제동:輕制動:
 경제동맹:經濟同盟:
-경제동물:경제動物:
+경제동물:經濟動物:
 경제동학:經濟動學:
 경제되다:經濟되다:
 경제란:經濟欄:
 경제림:經濟林:
 경제면:經濟面:
 경제모델:經濟모델:
-경제모형:경제模型:
+경제모형:經濟模型:
 경제목:經題目:
 경제문감:經濟文鑑:
-경제문제:경제問題:
+경제문제:經濟問題:
 경제민주주의:經濟民主主義:
 경제발전:經濟發展:
-경제발전단계설:경제발전段階說:
+경제발전단계설:經濟發展段階說:
 경제백서:經濟白書:
 경제범:經濟犯:
 경제법:經濟法:
 경제봉쇄:經濟封鎖:
 경제불쾌지수:經濟不快指數:
 경제블록:經濟블록:
-경제비:경제費:
+경제비:經濟費:
 경제사:經濟史:
-경제사:경제士:
+경제사:經濟士:
 경제사가:經濟史家:
 경제사관:經濟史觀:
 경제사범:經濟事犯:
-경제사부:경제四部:
-경제사상:경제思想:
+경제사부:經濟四部:
+경제사상:經濟思想:
 경제사적:經濟史的:
-경제사절:경제使節:
+경제사절:經濟使節:
 경제사학:經濟史學:
 경제사학계:經濟史學界:
 경제사학자:經濟史學者:
 경제사회이사회:經濟社會理事會:
 경제사회학:經濟社會學:
 경제생활:經濟生活:
-경제생활:경제生活:
 경제성:經濟性:
 경제성공학:經濟性工學:
 경제성장:經濟成長:
 경제예측:經濟豫測:
 경제외교:經濟外交:
 경제외적강제:經濟外的强制:
-경제원론:경제原論:
+경제원론:經濟原論:
 경제원조:經濟援助:
 경제원칙:經濟原則:
-경제위범:경제違犯:
+경제위범:經濟違犯:
 경제육전:經濟六典:
-경제의회:경제議會:
+경제의회:經濟議會:
 경제인:經濟人:
 경제인류학:經濟人類學:
-경제잠재력:경제潛在力:
+경제잠재력:經濟潛在力:
 경제재:經濟財:
 경제적:經濟的:
-경제적국민주의:경제적國民主義:
-경제적기본권:경제적基本權:
+경제적국민주의:經濟的國民主義:
+경제적기본권:經濟的基本權:
 경제적민주주의:經濟的民主主義:
 경제적유물론:經濟的唯物論:
-경제적자유:경제적自由:
+경제적자유:經濟的自由:
 경제적자유권:經濟的自由權:
-경제적조치:경제적措置:
-경제적집단:경제적潗團:
-경제적침투:경제적浸透:
+경제적조치:經濟的措置:
+경제적집단:經濟的潗團:
+경제적침투:經濟的浸透:
 경제전:經濟戰:
 경제정책:經濟政策:
 경제정책보험:經濟政策保險:
 경제정학:經濟靜學:
-경제제도:경제制度:
+경제제도:經濟制度:
 경제제재:經濟制裁:
 경제조정관:經濟調整官:
-경제조정관실:경제조정관室:
-경제조직:경제組織:
-경제조직자:경제조직者:
-경제조항:경제條項:
+경제조정관실:經濟調整官室:
+경제조직:經濟組織:
+경제조직자:經濟組織者:
+경제조항:經濟條項:
 경제주의:經濟主義:
-경제주의자:경제주의者:
+경제주의자:經濟主義者:
 경제주체:經濟主體:
-경제지구:경제地區:
-경제지도:경제地圖:
-경제지도:경제指導:
-경제지리:경제地理:
+경제지구:經濟地區:
+경제지도:經濟地圖:
+경제지도:經濟指導:
+경제지리:經濟地理:
 경제지리학:經濟地理學:
-경제지수:경제指數:
-경제지질학:경제地質學:
-경제지표:경제指標:
-경제차관:경제借款:
-경제차관보:경제차관補:
-경제차관회의:경제차관會議:
+경제지수:經濟指數:
+경제지질학:經濟地質學:
+경제지표:經濟指標:
+경제차관:經濟借款:
+경제차관보:經濟借款補:
+경제차관회의:經濟借款會議:
 경제철학:經濟哲學:
-경제체제:경제體制:
+경제체제:經濟體制:
 경제침투:經濟浸透:
-경제토대:경제土臺:
+경제토대:經濟土臺:
 경제통계:經濟統計:
-경제통계학:경제통계學:
+경제통계학:經濟統計學:
 경제통신사:經濟通信社:
 경제통제:經濟統制:
 경제통합:經濟統合:
 경제학:經濟學:
 경제학계:經濟學界:
 경제학과:經濟學科:
-경제학박사:경제학博士:
+경제학박사:經濟學博士:
 경제학부:經濟學部:
 경제학사:經濟學史:
-경제학사:경제학士:
-경제학사전:경제학辭典:
-경제학석사:경제학碩士:
-경제학설사:경제학設史:
+경제학사:經濟學士:
+경제학사전:經濟學辭典:
+경제학석사:經濟學碩士:
+경제학설사:經濟學設史:
 경제학자:經濟學者:
 경제학적:經濟學的:
 경제학파:經濟學派:
 경조:驚躁:
 경조:警曹:
 경조:輕燥:
-경조부박:輕浮薄:
+경조부박:輕浮薄:
 경조사:慶弔事:
 경조사비:慶弔事費:
 경조상문:慶弔相問:
 경찰병원:警察病院:
 경찰봉:警察棒:
 경찰서:警察署:
-경찰서원:경찰서員:
+경찰서원:警察署員:
 경찰서장:警察署長:
-경찰서장:경찰서長:
 경찰수첩:警察手帖:
 경찰의:警察醫:
 경찰의날:警察의날:
 경탄:硬彈:
 경탄성:敬歎聲:
 경탄성:驚歎聲:
-경탄조:경탄調:
+경탄조:驚歎調:
 경탈:傾奪:
 경탈:輕脫:
 경탐기:鯨探機:
 경향성:傾向性:
 경향소설:傾向小說:
 경향신문:京鄕新聞:
-경향영화:경향映畵:
+경향영화:傾向映畵:
 경향적:傾向的:
 경향출몰:京鄕出沒:
-경향출입:경향出入:
+경향출입:京鄕出入:
 경허:鏡虛:
 경헌:敬軒:
 경헌법:硬憲法:
 경험:經驗:
 경험가:經驗家:
 경험과학:經驗科學:
-경험교환회:경험交換會:
+경험교환회:經驗交換會:
 경험급:經驗給:
 경험단원:經驗單元:
 경험담:經驗談:
 경험률:經驗率:
 경험명제:經驗命題:
 경험방:經驗方:
-경험법칙:경험法則:
+경험법칙:經驗法則:
 경험비판론:經驗批判論:
 경험생명표:經驗生命表:
-경험식:경험式:
+경험식:經驗式:
 경험심리학:經驗心理學:
-경험아:경험我:
+경험아:經驗我:
 경험일원론:經驗一元論:
 경험자:經驗者:
-경험자아:경험自我:
+경험자아:經驗自我:
 경험적:經驗的:
 경험적개념:經驗的槪念:
 경험적법칙:經驗的法則:
-경험적성격:경험적性格:
+경험적성격:經驗的性格:
 경험적실재론:經驗的實在論:
 경험적의식:經驗的意識:
-경험적인식:경험적認識:
+경험적인식:經驗的認識:
 경험적확률:經驗的確率:
 경험주의:經驗主義:
 경험주의적:經驗主義的:
 경험착오:經驗錯誤:
 경험철학:經驗哲學:
 경험칙:經驗則:
-경험칙:경험則:
 경험커리큘럼:經驗커리큘럼:
 경험판단:經驗判斷:
 경험표:經驗表:
 경호원:警護員:
 경호인:警護人:
 경호처장:警護處長:
-경호함:경호艦:
+경호함:警護艦:
 경혹:驚惑:
 경혹되다:驚惑되다:
 경혼:驚魂:
 경회:輕灰:
 경회:鯨膾:
 경회루:慶會樓:
-경회유:경회釉:
+경회유:輕灰釉:
 경효전:景孝殿:
 경효전일기:景孝殿日記:
 경훈:經訓:
 계:屆:이를 계, 다다를 계
 계:磎:谿와 同字, 시냇물 계
 계:堺:界와 同字, 지경 계
-계:届:
 계:雞:닭 계
-계:継:
 계:烓:화덕 계
 계:罽:물고기 그물 계
 계:薊:삽주 계
-계:洎:
 계:堦:섬돌 계
 계:髻:상투 계
-계:繋:
-계:鶏:
 계:禊:계제 계
 계:筓:비녀 계
-계:笄:
 계:綮:발 고운 비단 계
 계:稧:
+계:瘈:미칠 계
+계:縘:繫와 同字
+계:葪:베일 계, 삽주 계
+계:届:
+계:継:
+계:洎:
+계:繋:
+계:鶏:
+계:笄:
 계:悈:
 계:紒:
 계:㻑:
 계:䙆:
 계:鸂:
 계:啟:
-계:瘈:미칠 계
 계:卟:
 계:呇:
 계:晵:
 계:锲:
 계:阶:
 계:㶉:
-계:縘:繫와 同字
-계:葪:베일 계, 삽주 계
 계:乩:
 계:唘:
 계:啔:
 계급:階級:
 계급:戒急:
 계급값:階級값:
-계급관:계급觀:
+계급관:階級觀:
 계급국가:階級國家:
 계급귀속의식:階級歸屬意識:
 계급독재:階級獨裁:
 계급방언:階級方言:
 계급사회:階級社會:
 계급성:階級性:
-계급성:계급性:
 계급의식:階級意識:
 계급장:階級章:
 계급적:階級的:
-계급적:계급的:
-계급전:계급戰:
+계급전:階級戰:
 계급정당:階級政黨:
 계급제도:階級制度:
-계급주의:계급主義:
+계급주의:階級主義:
 계급층:階級層:
 계급치:階級値:
 계급투쟁:階級鬪爭:
 계단교실:階段敎室:
 계단농업:階段農業:
 계단단층:階段斷層:
-계단대형:계단隊形:
+계단대형:階段隊形:
 계단만:階段灣:
 계단백탕:鷄蛋白湯:
 계단상:階段狀:
 계량경제학:計量經濟學:
 계량기:計量器:
 계량단위:計量單位:
-계량등:계량燈:
+계량등:計量燈:
 계량법:計量法:
 계량법학:計量法學:
-계량봉:계량棒:
+계량봉:計量棒:
 계량사회학:計量社會學:
 계량소립자:計量素粒子:
 계량스푼:計量스푼:
 계류열:稽留熱:
 계류음:繫留音:
 계류장:繫留場:
-계류조:계류條:
+계류조:稽留條:
 계류탑:繫留塔:
 계류형:溪流型:
 계륜:桂輪:
 계명산천:鷄鳴山川:
 계명성:啓明星:
 계명성:鷄鳴聲:
-계명시:계명時:
+계명시:鷄鳴時:
 계명점년:鷄鳴占年:
 계명주:鷄鳴酒:
 계명지객:鷄鳴之客:
 계목:鷄鶩:
 계목곡:桂木曲:
 계몽:啓蒙:
-계몽기:계몽期:
+계몽기:啓蒙期:
 계몽대:啓蒙隊:
 계몽도설:啓蒙圖說:
 계몽사상:啓蒙思想:
 고:尻:꽁무니 고
 고:犒:
 고:瞽:소경 고
-고:臯:
-고:髙:
-고:皷:
 고:刳:가를 고
 고:靠:기댈 고
 고:翺:날 고
-고:泒:
-고:稾:
 고:罟:그물 고
 고:觚:술잔 고
-고:鼔:
 고:杲:밝을 고
-고:吿:
-고:䯻:
 고:栲:북나무 고
-고:楛:
 고:槀:마를 고
 고:估:값 고
 고:詁:주석 고
 고:盬:염지 고
 고:篙:상앗대 고
 고:鴣:자고 고
-고:翶:
 고:皋:못 고
 고:酤:계명주 고
 고:櫜:활집 고
 고:糕:떡 고
 고:胯:사타구니 고
-고:餻:
 고:郜:나라이름 고
-고:柧:
 고:羖:검은 암양 고
+고:槹:두레박 고
+고:鈷:다리미 고
+고:凅:얼어붙을 고
+고:牯:암소 고
+고:稁:稿와 同字
+고:箍:테 고
+고:鷱:새이름 고
+고:塙:
+고:臯:
+고:髙:
+고:皷:
+고:泒:
+고:稾:
+고:鼔:
+고:吿:
+고:䯻:
+고:楛:
+고:翶:
+고:餻:
+고:柧:
 고:侤:
 고:蛄:
-고:槹:두레박 고
 고:嵪:
 고:笟:
 고:羙:
 고:胍:
 고:搞:
 고:㟸:
-고:鈷:다리미 고
 고:桍:
 고:棝:
 고:槔:
 고:鲓:
 고:鲴:
 고:鸪:
-고:凅:얼어붙을 고
-고:牯:암소 고
-고:稁:稿와 同字
-고:箍:테 고
-고:鷱:새이름 고
-고:塙:
 고:僱:
 고:勂:
 고:叝:
 곡:鵠:고니 곡, 과녁 곡
 곡:梏:쇠고랑 곡, 수갑 곡
 곡:斛:휘 곡, 헤아릴 곡
-곡:糓:
 곡:轂:바퀴 곡
 곡:嚳:
-곡:榖:
-곡:毂:
 곡:縠:주름 비단 곡
 곡:觳:뿔잔 곡
+곡:槲:떡갈나무 곡
+곡:糓:
+곡:榖:
+곡:毂:
 곡:牿:
 곡:瑴:
 곡:喾:
 곡:鹄:
-곡:槲:떡갈나무 곡
 곡:俈:
 곡:匤:
 곡:唂:
 곤:衮:袞과 同字
 곤:閫:문지방 곤
 곤:悃:정성 곤
+곤:髡:머리 깍을 곤
+곤:鵾:댓닭 곤
+곤:崐:곤륜산 곤
+곤:褌:잠방이 곤
+곤:捆:두드릴 곤
+곤:堃:따 곤
+곤:緄:띠 곤
+곤:裍:걷어 올릴 곤
+곤:錕:붉은 쇠 곤
+곤:鶤:댓닭 곤
+곤:齫:이 빠질 곤
 곤:鯀:
 곤:壼:
-곤:髡:머리 깍을 곤
 곤:滚:
 곤:髠:
-곤:鵾:댓닭 곤
-곤:崐:곤륜산 곤
 곤:璭:
 곤:綑:
-곤:褌:잠방이 곤
 곤:稇:
 곤:晜:
 곤:蔉:
-곤:捆:두드릴 곤
 곤:蓘:
 곤:蜫:
 곤:鮌:
 곤:鲧:
 곤:鲲:
 곤:鹍:
-곤:堃:따 곤
-곤:緄:띠 곤
-곤:裍:걷어 올릴 곤
-곤:錕:붉은 쇠 곤
-곤:鶤:댓닭 곤
-곤:齫:이 빠질 곤
 곤:丨:뚫다
 곤:堒:
 곤:尡:
 골:骨:뼈 골
 골:滑:어지러울 골
 골:汨:골몰할
-골:汩:
 골:鶻:송골매 골
 골:矻:
 골:榾:등걸 골
 골:搰:팔 골
+골:汩:
 골:杚:
 골:圣:
 골:馉:
 공:鞏:묶을 공, 가죽테 공
 공:珙:큰 옥 공, 옥이름 공
 공:蚣:지네 공
-공:筇:
-공:㓛:
-공:㳟:
 공:跫:발자국 소리 공
 공:倥:어리석을 공
 공:崆:산이름 공
-공:羾:
 공:蛩:메뚜기 공
 공:釭:굴대 공
-공:鞚:
-공:廾:들다
 공:箜:공후 공
-공:邛:
 공:悾:정성 공
 공:栱:두공 공
+공:槓:지렛대 공
+공:贛:줄 공
+공:蛬:귀뚜라미 공
+공:龔:공손할 공
+공:筇:
+공:㓛:
+공:㳟:
+공:羾:
+공:鞚:
+공:廾:들다
+공:邛:
 공:笻:
 공:㓋:
-공:槓:지렛대 공
 공:涳:
-공:贛:줄 공
 공:卭:
 공:疘:
 공:糿:
 공:贡:
 공:赣:
 공:龚:
-공:蛬:귀뚜라미 공
-공:龔:공손할 공
 공:埪:
 공:塨:
 공:幊:
 과:夸:자랑할 과
 과:窠:보금자리 과
 과:夥:많을 과
-과:姱:
 과:媧:사람 이름 과
-과:薖:
 과:胯:사타구니 과
 과:撾:칠 과
-과:蜾:
-과:鈛:
 과:侉:자랑할 과
 과:踝:복사뼈 과
 과:銙:대구 과
 과:蝌:올챙이 과
-과:檛:
 과:騍:암말 과
+과:倮:
+과:堝:도가니 과
+과:猓:긴 꼬리 원숭이 과
+과:稞:보리 과
+과:姱:
+과:薖:
+과:蜾:
+과:鈛:
+과:檛:
 과:剮:
 과:堁:
 과:淉:
 과:骒:
 과:㶽:
 과:䯄:
-과:倮:
-과:堝:도가니 과
-과:猓:긴 꼬리 원숭이 과
-과:稞:보리 과
 과:冎:
 과:咵:
 과:坬:
 곽:藿:콩잎 곽
 곽:霍:빠를 곽
 곽:癨:곽란 곽
-곽:漷:
 곽:躩:
-곽:钁:
 곽:鞹:무두질한 가죽 곽
-곽:崞:
-곽:瀖:
 곽:椁:관 곽
 곽:矡:
+곽:漷:
+곽:钁:
+곽:崞:
+곽:瀖:
 곽:墎:
 곽:欔:
 곽:籗:
 관:莞:골풀 관
 관:琯:옥피리 관, 옥저 관
 관:棺:널 관
-관:顴:광대뼈 관
 관:瓘:옥 이름 관, 구슬 관
 관:罐:두레박 관, 물동이 관
 관:菅:골풀 관, 왕골 관
 관:梡:
-관:舘:
-관:関:
+관:顴:광대뼈 관
 관:盥:대야 관
-관:観:
-관:䝺:
-관:欵:
 관:祼:강신제 관
 관:錧:비녀장 관
-관:瘝:
-관:寛:
 관:綰:얽을 관
 관:丱:쌍상투 관
 관:鸛:황새 관
-관:毌:
 관:筦:피리 관
 관:窾:빌 관
 관:爟:봉화 관
 관:雚:황새 관
 관:髖:허리뼈 관
+관:鑵:두레박 관
+관:涫:끓을 관
+관:輨:줏대 관
+관:舘:
+관:関:
+관:観:
+관:䝺:
+관:欵:
+관:瘝:
+관:寛:
+관:毌:
 관:倌:
 관:窽:
 관:闗:
-관:鑵:두레박 관
 관:礶:
 관:躀:
 관:䦎:
 관:馆:
 관:髋:
 관:鹳:
-관:涫:끓을 관
-관:輨:줏대 관
 관:卝:
 관:悹:
 관:悺:
 괄:栝:노송나무 괄
 괄:筈:하눌타리 괄
 괄:髺:머리 묶을 괄
-괄:鸹:
 괄:佸:힘 쓸 괄
 괄:鴰:재두루미 괄
+괄:鸹:
 괄:劀:
 괄:懖:
 괄:桰:
 광:珖:옥피리 광
 광:炚:햇빚 뜨거울 광, 밝을 광
 광:絖:솜 광
-광:礦:
 광:誑:속일 광
 광:纊:솜 광
 광:恇:겁낼 광
 광:獷:사나울 광
+광:磺:쇳돌 광
+광:桄:광랑나무 광
+광:茪:초결명 광
+광:框:문테 광
+광:爌:불 빛 환할 광
+광:誆:속일 광
+광:礦:
 광:撗:
 광:劻:
 광:眶:
 광:迋:
 광:矌:
-광:磺:쇳돌 광
-광:桄:광랑나무 광
 광:灮:
 광:垙:
-광:茪:초결명 광
 광:僙:
 광:抂:
 광:銧:
 광:诳:
 광:邝:
 광:鉱:
-광:框:문테 광
-광:爌:불 빛 환할 광
-광:誆:속일 광
 광:俇:
 광:儣:
 광:匩:
 괘:挂:그림족자 괘
 괘:詿:그르칠 괘
 괘:罣:걸 괘
+괘:咼:입 비뚤어질 괘
 괘:喎:
 괘:絓:
 괘:呙:
 괘:诖:
 괘:㖞:
-괘:咼:입 비뚤어질 괘
 괘:叧:
 괘:啩:
 괘:枴:
 괴:魁:으뜸 괴, 괴수 괴
 괴:拐:속일 괴
 괴:媿:창피줄 괴
-괴:壊:
 괴:坏:
 괴:恠:怪의 俗字
 괴:瑰:슬이름 괴
 괴:蒯:황모 괴
-괴:蕢:
-괴:瓌:
 괴:闠:
-괴:烠:
 괴:廥:여물광 괴
 괴:襘:띠매듭 괴
+괴:璝:옥돌 괴
+괴:壊:
+괴:蕢:
+괴:瓌:
+괴:烠:
 괴:凷:
 괴:欳:
 괴:膭:
 괴:块:
 괴:蒉:
-괴:璝:옥돌 괴
 괴:墤:
 괴:巜:
 괴:旝:
 굉:紘:갓끈 굉
 굉:閎:마을문 굉
 굉:觥:뿔잔 굉
-굉:硡:
 굉:黌:
-굉:鍠:
-굉:鍧:
 굉:訇:큰 소리 굉
 굉:浤:용솟음할 굉
+굉:硡:
+굉:鍠:
+굉:鍧:
 굉:汯:
 굉:翃:
 굉:翝:
 교:鮫:상어 교
 교:蕎:메밀 교
 교:餃:경단 교
-교:教:
 교:徼:
 교:榷:외나무 다리 교
-교:皦:
 교:嘐:닭 울 교
-교:挍:
 교:嚙:깨물 교
-교:轇:
 교:磽:메마른 땅 교
-교:屩:
 교:鉸:
 교:姣:예쁠 교
 교:窖:
 교:蹻:
 교:佼:예쁠 교
 교:趫:
+교:撟:들 교
+교:噭:부르짖을 교
+교:憍:교만할 교
+교:晈:달 밝을 교
+교:嘄:부르짖을 교
+교:暞:밝을 교
+교:橇:
+교:骹:
+교:鵁:
+교:齩:
+교:教:
+교:皦:
+교:挍:
+교:轇:
+교:屩:
 교:嵺:
 교:鄥:
-교:撟:들 교
 교:恔:
 교:敫:
 교:珓:
 교:穚:
-교:噭:부르짖을 교
-교:憍:교만할 교
 교:茭:
 교:蟜:
 교:譑:
-교:晈:달 밝을 교
 교:儌:
 교:墽:
 교:漖:
 교:骄:
 교:鲛:
 교:䴔:
-교:嘄:부르짖을 교
-교:暞:밝을 교
-교:橇:
-교:骹:
-교:鵁:
-교:齩:
 교:丂:
 교:啋:
 교:嘂:
 구:絿:급박할 구, 급할 구
 구:柾:관 구, 널 구
 구:銶:끌 구
-구:惧:
 구:搆:얽어맬 구
 구:扣:두드릴 구
-구:旧:
 구:裘:갓옷 구
 구:詬:꾸짖을 구
 구:疚:오랜 병 구
 구:遘:만날 구
 구:媾:겹사돈 구
 구:屨:삼으로 짠 신 구
-구:厩:
-구:乆:
-구:敺:
 구:嫗:할미 구
 구:劬:수고로울 구
 구:捄:흙파올릴 구
 구:駈:驅와 同字
 구:甌:사발 구
 구:摳:치마걷어들 구
-구:廏:마구간
 구:窶:가난하여 예절없을 구
-구:耇:
 구:彀:활 잔뜩 당길 구
 구:颶:사방풍 구
-구:沟:
-구:臞:
-구:緱:
-구:玽:
-구:雊:
 구:漚:물거품 구
 구:韭:부추 구
 구:鸜:구관조 구
-구:耈:
 구:傴:구부릴 구
-구:呴:
 구:榘:곡척 구
 구:糗:마른밥가루 구
 구:蚯:지렁이 구
 구:覯:
-구:䪷:
 구:癯:여윌 구
-구:倶:
-구:賕:
-구:亀:
 구:韝:깍지 구
-구:冦:
-구:㡱:
 구:姤:만날 구
 구:匶:柩의 古字
 구:璆:옥경쇠 구
 구:釦:그릇에 금테 두를 구
+구:鷇:새 새끼 구
+구:俅:공손할 구
+구:佝:꼽추 구
+구:岣:산이름 구
+구:昫:해돋아 따뜻할 구
+구:篝:불덮개 구
+구:胊:포(얇게 저미어서 말린 고기) 구
+구:坸:垢와 同字
+구:冓:재목 어긋매겨 쌓을 구
+구:佉:
+구:傋:
+구:厹:세모창 구
+구:叴:소리 높일 구
+구:戵:창 구
+구:痀:곱사등이 구
+구:窛:노략질할 구
+구:蒟:구장 구
+구:韮:韭와 同字
+구:鬮:제비뽑을 구
+구:惧:
+구:旧:
+구:厩:
+구:乆:
+구:敺:
+구:廏:마구간
+구:耇:
+구:沟:
+구:臞:
+구:緱:
+구:玽:
+구:雊:
+구:耈:
+구:呴:
+구:䪷:
+구:倶:
+구:賕:
+구:亀:
+구:冦:
+구:㡱:
 구:抅:
 구:氍:
 구:觓:
 구:訽:
-구:鷇:새 새끼 구
 구:躣:
 구:鞲:
-구:俅:공손할 구
 구:寠:
 구:椇:
 구:欨:
 구:㪺:
 구:㲄:
 구:䆒:
-구:佝:꼽추 구
-구:岣:산이름 구
-구:昫:해돋아 따뜻할 구
-구:篝:불덮개 구
-구:胊:포(얇게 저미어서 말린 고기) 구
 구:笱:
-구:坸:垢와 同字
 구:浗:
 구:蝺:
 구:褠:
 구:㣘:
 구:㽛:
-구:冓:재목 어긋매겨 쌓을 구
-구:佉:
 구:朹:
 구:梂:
 구:泃:
 구:鸥:
 구:鸲:
 구:龟:
-구:傋:
-구:厹:세모창 구
-구:叴:소리 높일 구
-구:戵:창 구
-구:痀:곱사등이 구
-구:窛:노략질할 구
-구:蒟:구장 구
-구:韮:韭와 同字
-구:鬮:제비뽑을 구
 구:丠:
 구:丩:
 구:倃:
 국:鞠:기를 국
 국:鞫:문초받을
 국:麴:누룩 국
-국:国:
 국:匊:움켜 뜰 국
-국:囯:
 국:跼:구부릴 국
 국:掬:두 손으로 움킬 국
 국:麯:麴과 同字
+국:国:
+국:囯:
 국:踘:
 국:閰:
 국:囗:둘러쌀
 군:群:무리 군
 군:窘:군색할 군, 급할 군
 군:裙:치마 군
-군:羣:
 군:捃:주울 군
-군:頵:
-군:涒:
 군:皸:얼어터질 군
 군:桾:고욤나무 군
+군:羣:
+군:頵:
+군:涒:
 군:军:
 군:皲:
 군:鲪:
 굴:詘:굽을 굴
 굴:矻:
 굴:倔:딱딱할 굴
-굴:朏:
 굴:淈:흐릴 굴
+굴:朏:
 굴:胐:
 굴:诎:
 굴:崫:
 궁:躬:몸 궁
 궁:穹:높을 궁
 궁:芎:궁궁이 궁
+궁:躳:躬의 本字
 궁:宫:
 궁:穷:
 궁:藭:
 궁:匔:
-궁:躳:躬의 本字
 궁:杛:
 궁:竆:
 궁:㑋:
 권:捲:거둘 권, 주먹쥘 권
 권:淃:물돌아 흐를 권, 물도는 모양 권
 권:惓:삼갈 권
-권:勧:
 권:綣:정다울 권
 권:睠:眷과 同字
 권:蜷:움추러질 권
+권:棬:휘어만든 나무그릇 권
+권:勌:倦과 同字
+권:勧:
 권:劵:
 권:巻:
-권:棬:휘어만든 나무그릇 권
 권:踡:
 권:鬈:
-권:勌:倦과 同字
 권:帣:
 권:䄅:
 권:劝:
 궐:蕨:고사리 궐
 궐:獗:도둑 일어날 궐, 뛰놀 궐
 궐:劂:
+궐:撅:
 궐:橛:
 궐:蹷:
 궐:橜:
 궐:镢:
 궐:阙:
 궐:鳜:
-궐:撅:
 궐:亅:갈고리
 궐:噘:
 궐:孒:
 궤:机:느티나무 궤, 책상 궤
 궤:詭:속일 궤, 간사할 궤
 궤:櫃:상자 궤, 궤짝 궤
-궤:几:안석 궤
 궤:饋:먹일 궤
+궤:几:안석 궤
 궤:跪:끓어앉을 궤
 궤:匱:갑 궤
 궤:樻:가마테나무 궤
 궤:簋:대제기 궤
 궤:餽:饋와 同字
 궤:憒:심란할 궤
-궤:簣:
 궤:劂:
 궤:繢:톱끝 궤
-궤:䡄:
-궤:匭:
 궤:闠:저자문 궤
 궤:佹:포갤 궤
+궤:氿:물가 궤
+궤:麂:큰고라니 궤
+궤:撅:
+궤:簣:
+궤:䡄:
+궤:匭:
 궤:㧪:
 궤:垝:
 궤:觤:
 궤:轨:
 궤:阓:
 궤:㱮:
-궤:氿:물가 궤
-궤:麂:큰고라니 궤
-궤:撅:
 궤:凧:
 궤:厬:
 궤:圚:
 귀:鬼:귀신 귀
 귀:龜:거북 귀
 귀:晷:시각 귀, 해그림자 귀
+귀:巋:
 귀:帰:
 귀:䢜:
 귀:宄:
-귀:巋:
 귀:瞶:
 귀:劌:
 귀:撌:
 규:赳:헌걸찰 규, 위엄스러울 규
 규:槻:물푸레나무 규
 규:虬:虯와 同字
-규:呌:
 규:跬:한발자국 규
 규:睽:어그러질 규
 규:虯:뿔없는 용 규
 규:闚:갸웃이 볼 규
 규:樛:나무가지 휘어질 규
-규:䂓:
 규:巋:
 규:糺:거둘 규
 규:楏:호미자루 규
 규:暌:해질 규
 규:頍:고깔비녀 규
 규:馗:아홉거리 규
+규:邽:고을이름 규
+규:鮭:
+규:嫢:가는 허리 규
+규:呌:
+규:䂓:
 규:戣:
 규:煃:
-규:邽:고을이름 규
 규:摎:
 규:槼:
-규:鮭:
 규:恘:
 규:芤:
 규:頯:
 규:纠:
 규:规:
 규:闺:
-규:嫢:가는 허리 규
 규:乣:
 규:喹:
 규:媯:
 균:筠:대껍질 균, 속빈 대 균
 균:勻:고를 균
 균:畇:밭개간할 균
-균:匀:
 균:囷:둥근곳집 균
-균:稛:
 균:麏:고라니 균
+균:匀:
+균:稛:
 균:麕:
 균:袀:
 균:钧:
 극:戟:갈래진 창 극
 극:剋:깍일 극, 이길 극
 극:亟:빠를 극
-극:殛:
 극:屐:나막신 극
-극:郤:
 극:郄:隙과 同字
+극:尅:剋과 同字
+극:殛:
+극:郤:
 극:㦸:
 극:茍:
 극:鋴:
 극:蕀:
 극:㥛:
 극:剧:
-극:尅:剋과 同字
 극:丮:
 극:勀:
 극:勊:
 근:劤:힘많을 근, 힘셀 근
 근:跟:발두꿈치 근
 근:靳:아낄 근
-근:堇:
 근:卺:합환주잔 근
 근:蘄:
-근:㘦:
 근:厪:적을 근
-근:殣:
 근:觔:筋과 同字
-근:慬:
-근:斳:
 근:墐:진흙 근
 근:巹:받들 근
 근:釿:대패 근
 근:廑:작은집 근
 근:漌:맑을 근
+근:堇:
+근:㘦:
+근:殣:
+근:慬:
+근:斳:
 근:䈽:
 근:觐:
 근:谨:
 금:嶔:높고 험할 금
 금:笒:첨대 금
 금:唫:입 다물 금
+금:黅:누른 빛 금
 금:紟:
 금:琹:
 금:顉:
 금:嵚:
 금:钅:
 금:锦:
-금:黅:누른 빛 금
 금:僸:
 금:凎:
 금:凚:
 긍:兢:삼갈 긍, 조심할 긍
 긍:矜:불쌍히 여길 긍, 자랑할 긍
 긍:亘:뻗칠
-긍:矝:
 긍:亙:뻗칠 긍
+긍:殑:까무라칠 긍
+긍:矝:
 긍:堩:
 긍:絚:
 긍:緪:
 긍:肎:
-긍:殑:까무라칠 긍
 긍:刯:
 긍:奟:
 긍:掯:
 기:伎:재주 기
 기:崎:험할 기, 산길험할 기
 기:枳:해할 기, 사타구니 기
-기:几:
-기:覬:바랄 기
 기:圻:경기 기, 지경 기
 기:饑:주릴 기, 흉년들 기
 기:祇:토지의 신 기, 편안할 기
 기:玘:패옥 기
 기:璂:피변 꾸미개 기, 고깔꾸미개 기
 기:埼:崎와 同字, 언덕머리 기
+기:几:
+기:覬:바랄 기
 기:耭:갈 기, 밭갈 기
 기:錤:호미 기
 기:歧:岐와 同字
 기:弃:棄의 古字
 기:曁:및 기
-기:芑:
-기:竒:
 기:旂:기 기
-기:覊:
 기:欹:
-기:㡬:
 기:頎:헌걸찰 기
 기:墍:맥질할 기
 기:棊:棋와 同字
-기:旡:
 기:鬐:갈기 기
 기:蟣:서캐 기
 기:跂:육발 기
 기:芰:세발 마름 기
 기:猉:
 기:綦:연두빛 비단 기
-기:惎:
 기:忮:해칠 기
-기:跽:
 기:屺:민둥산 기
-기:鞿:
 기:愭:공손할 기
-기:怾:
 기:芪:단너삼 기
+기:炁:기운 기
+기:羇:나그네 기
+기:覉:구속할 기, 말 굴레 기
+기:僛:취하여 춤추는 모양 기
+기:庋:시렁 기
+기:禨:조짐 기
+기:肵:적대 기
+기:虁:夔와 同字
+기:暣:볕기운 기
+기:綥:비단 쑥색 기
+기:蜝:방계 기
+기:鰭:지느러미 기
+기:隑:
+기:黖:
+기:芑:
+기:竒:
+기:覊:
+기:㡬:
+기:旡:
+기:惎:
+기:跽:
+기:鞿:
+기:怾:
 기:碕:
 기:踦:
-기:炁:기운 기
 기:丌:
 기:徛:
 기:既:
 기:禥:
 기:蘷:
 기:衹:
-기:羇:나그네 기
-기:覉:구속할 기, 말 굴레 기
 기:倛:
 기:庪:
 기:懻:
 기:㙨:
 기:㟓:
 기:䕫:
-기:僛:취하여 춤추는 모양 기
-기:庋:시렁 기
-기:禨:조짐 기
-기:肵:적대 기
-기:虁:夔와 同字
 기:兾:
 기:刉:
 기:嘰:
 기:鱾:
 기:鲯:
 기:鳍:
-기:暣:볕기운 기
-기:綥:비단 쑥색 기
-기:蜝:방계 기
-기:鰭:지느러미 기
-기:隑:
-기:黖:
 기:亓:
 기:僟:
 기:刏:
 길:拮:일할 길, 열심히일할 길
 길:佶:건장할 길, 바를 길
 길:桔:도라지 길
-길:洁:
-길:趌:
 길:姞:성 길
 길:鴶:
-길:鲒:
 길:蛣:장구벌레 길
+길:洁:
+길:趌:
+길:鲒:
 길:咭:
 길:狤:
 길:郆:
 나:挐:붙잡을 나
 나:挪:옮길 나
 나:糯:찰벼 나
+나:梛:나무 이름 나
+나:糥:糯와 同字
 나:郍:
 나:砈:
 나:穤:
 나:傩:
 나:镎:
-나:梛:나무 이름 나
-나:糥:糯와 同字
 나:乸:
 나:哪:
 나:嗱:
 난:鸞:난새 난
 난:煖:따뜻할 난, 더울 난
 난:赧:얼굴 붉힐 난
-난:㬉:
 난:煗:터울 난
-난:难:
 난:偄:언약할 난
 난:餪:풀보기 잔치 난
+난:㬉:
+난:难:
 난:奻:
 난:戁:
 난:渜:
 남:枏:녹나무 남, 매화나무 남
 남:湳:강 이름 남, 물이름 남
 남:襤:누더기 남
-남:娚:
 남:喃:재잘거릴 남
 남:柟:枏의 俗字
+남:娚:
 남:揇:
 남:㑲:
 남:侽:
 내:耐:견딜 내
 내:奈:어찌 내
 내:柰:능금나무 내, 어찌 내
-내:内:
 내:迺:이에 내
 내:鼐:가마솥 내
+내:内:
 내:匂:향내 내
 내:嬭:젖 내
+내:奶:젖 내
 내:廼:
 내:㮏:
-내:奶:젖 내
 내:褦:
 내:㮈:
 내:撆:
 녕:獰:
 녕:寗:편안할 녕, 차라리 녕
 녕:佞:재주 녕
+녕:濘:진흙 녕
+녕:嚀:정녕할 녕
+녕:儜:고달플 녕
 녕:侫:
 녕:寕:
-녕:濘:진흙 녕
 녕:寜:
 녕:甯:
-녕:嚀:정녕할 녕
 녕:擰:
 녕:聹:
 녕:咛:
 녕:拧:
 녕:聍:
-녕:儜:고달플 녕
 녕:嬣:
 녕:寍:
 녕:橣:
 노:瑙:마노 노, 옥돌 노
 노:孥:자식 노
 노:呶:들랠 노
-노:砮:
-노:巙:
 노:猱:못할 노
 노:笯:새장 노
-노:怓:
 노:臑:팔마디 노
+노:峱:산이름 노
+노:砮:
+노:巙:
+노:怓:
 노:鑥:
 노:镥:
 노:驽:
 노:䜧:
-노:峱:산이름 노
 노:伖:
 노:伮:
 노:夒:
 농:穠:후한 제사 농
 농:儂:나 농
 농:醲:텁텁한 술 농
+농:噥:달게 먹을 농
 농:禯:
 농:癑:
 농:侬:
 농:秾:
 농:脓:
 농:㶶:
-농:噥:달게 먹을 농
 농:嶩:
 농:檂:
 농:欁:
 뇌:牢:가축우리 뇌
 뇌:磊:돌이 많이 쌓인 모양 뇌, 돌무더기 뇌
 뇌:餒:굶길 뇌
-뇌:脳:
 뇌:餧:
+뇌:脳:
 뇌:挼:
 뇌:憹:
 뇌:垴:
 뇨:撓:
 뇨:鬧:시끄러울 뇨
 뇨:橈:
-뇨:閙:
 뇨:嫋:날릴 뇨
 뇨:裊:끄을 뇨
 뇨:淖:진흙 뇨
 뇨:鐃:작은 징 뇨
+뇨:嬲:샘낼 뇨
+뇨:嬈:
+뇨:磠:
+뇨:閙:
 뇨:褭:
 뇨:譊:
-뇨:嬲:샘낼 뇨
 뇨:䙚:
 뇨:袅:
 뇨:铙:
 뇨:闹:
-뇨:嬈:
-뇨:磠:
 뇨:嫐:
 뇨:嬝:
 뇨:硇:
 누:壘:진 누
 누:縷:자세할 누, 실 누
 누:耨:김맬 누
+누:啂:
 누:㝅:
 누:鎒:
 누:槈:
 누:檽:
-누:啂:
 누:獳:
 누:羺:
 누:譨:
 눈해변싸리:눈海邊싸리:
 눈향나무:눈香나무:
 눌:訥:말 더듬거릴 눌, 말을 더듬는 눌
-눌:呐:
 눌:吶:말 더듬을 눌
 눌:肭:물개 눌
+눌:呐:
 눌:讷:
 눌:抐:
 눌:㕯:
 뉘른베르크재판:뉘른베르크裁判:
 뉴:紐:잡색비단 뉴, 단추 뉴
 뉴:杻:옷 부드러울 뉴, 싸리 뉴
-뉴:狃:
 뉴:忸:익을 뉴
+뉴:靵:단추 뉴
+뉴:狃:
 뉴:鈕:
 뉴:扭:
 뉴:䋴:
 뉴:纽:
 뉴:钮:
-뉴:靵:단추 뉴
 뉴:妞:
 뉴:沑:
 뉴:炄:
 뉴햄프셔종:뉴햄프셔種:
 뉴햄프셔주:뉴햄프셔州:
 뉴헤브리디스제도:뉴헤브리디스諸島:
-뉵:恧:
-뉵:朒:
 뉵:忸:
 뉵:衄:코피 뉵
+뉵:恧:
+뉵:朒:
 뉵:衂:
 뉵:䖡:
 뉵:䘐:
 늦체:늦滯:
 니:泥:막힐 니, 진흙 니
 니:尼:여승 니, 여자중 니
-니:你:
 니:禰:
 니:怩:부끄러워할 니
 니:膩:살찔 니
-니:旎:
 니:呢:소근거릴 니
-니:埮:
 니:柅:얼레자루 니
+니:祢:
+니:你:
+니:旎:
+니:埮:
 니:濔:
 니:臡:
 니:妳:
 니:檷:
 니:蚭:
 니:迡:
-니:祢:
 니:腻:
 니:铌:
 니:伱:
 단:彖:결단할 단, 결단내릴 단
 단:鄲:조나라 서울 단, 땅이름 단
 단:坍:언덕
-단:断:
-단:单:
 단:担:원숭이 같은 짐승 단
 단:胆:침비깨 단
-단:摶:
-단:槫:
 단:椴:자작나무 단
 단:慱:근심할 단
 단:漙:이슬방울 맺을 단
-단:泹:
 단:靼:
-단:襌:
 단:癉:황달 단
-단:㫁:
 단:蜑:오랑캐 이름 단
 단:耑:시초 단
-단:瑖:
 단:澶:
+단:腶:약포 단
+단:断:
+단:单:
+단:摶:
+단:槫:
+단:泹:
+단:襌:
+단:㫁:
+단:瑖:
 단:猯:
 단:褖:
-단:腶:약포 단
 단:鏄:
 단:偳:
 단:潬:
 달:疸:황달 달
 달:獺:수달 달
 달:澾:미끄러울
-달:㺚:
 달:怛:깜짝 놀랄 달
 달:闥:대문 달
-달:逹:
 달:韃:칠 달
 달:靼:다룬가죽 달
 달:妲:계집의 이름 달
+달:㺚:
+달:逹:
 달:橽:
 달:鐽:
 달:呾:
 담:墰:목긴 술병 담
 담:禫:담제 담
 담:啗:씹을 담
+담:毯:담자리 담
+담:郯:나라이름 담
+담:噉:씹을 담
+담:儋:기운차고 날쌜해집 담
+담:薝:치자나무 담
+담:黮:검을 담
+담:壜:술병 담
+담:忐:
+담:罎:壜과 同字
+담:黵:문신할 담
 담:惔:
 담:耼:
 담:聸:
 담:紞:
-담:毯:담자리 담
-담:郯:나라이름 담
 담:倓:
 담:甔:
-담:噉:씹을 담
-담:儋:기운차고 날쌜해집 담
-담:薝:치자나무 담
 담:萏:
-담:黮:검을 담
 담:䃫:
 담:橝:
 담:窞:
 담:谈:
 담:谭:
 담:锬:
-담:壜:술병 담
-담:忐:
-담:罎:壜과 同字
-담:黵:문신할 담
 담:偡:
 담:啿:
 담:嘾:
 당:瑭:옥이름 당
 당:瞠:바로볼 당
 당:鐺:죄인 자물쇠 당
-당:螗:
-당:簹:
-당:戅:
 당:襠:잠방이 당
 당:鏜:북방축소 당
-당:嵣:
 당:溏:진수렁 당
 당:餳:엿 당
+당:檔:책상 당
+당:礑:밑바닥 당
+당:蟷:사마귀 당
+당:餹:엿 당
+당:螗:
+당:簹:
+당:戅:
+당:嵣:
 당:戃:
 당:䅯:
 당:儅:
 당:镗:
 당:饧:
 당:㓥:
-당:檔:책상 당
-당:礑:밑바닥 당
-당:蟷:사마귀 당
-당:餹:엿 당
 당:傏:
 당:凼:
 당:劏:
 대:玳:대모(바다거북) 대
 대:錞:창고달 대
 대:坮:들 대, 집대 대
+대:懟:원망할 대
+대:碓:방아 대
+대:儓:하인 대
+대:汏:씻을 대
+대:隶:
+대:旲:햇빛 대
+대:鐓:창고달 대
 대:㐲:
 대:䑓:
 대:帯:
-대:懟:원망할 대
 대:帒:
 대:憝:
 대:襨:
 대:濧:
-대:碓:방아 대
-대:儓:하인 대
 대:薱:
 대:襶:
 대:㙜:
-대:汏:씻을 대
 대:檯:
 대:祋:
 대:薹:
 대:㭖:
 대:䒫:
 대:䨴:
-대:隶:
 대:对:
 대:対:
 대:带:
 대:轪:
 대:镦:
 대:队:
-대:旲:햇빛 대
-대:鐓:창고달 대
 대:亣:
 대:嬯:
 대:廗:
 도:嶋:섬 도
 도:櫂:상앗대 도, 노 도
 도:叨:탐할 도
-도:盗:
 도:菟:
 도:鼗:땡땡이 도
 도:擣:찧을 도
 도:饕:탐할 도
-도:謟:
-도:迯:
 도:涂:길 도
-도:禂:
 도:絛:
-도:荼:
 도:杲:
 도:闍:성문 층대 도
+도:忉:근심할 도
+도:弢:활집 도
+도:稌:찰벼 도
+도:鞱:너그러울 도
+도:搯:두드릴 도
+도:檮:그루터기 도
+도:慆:기뻐할 도
+도:壔:작은 성 도
+도:洮:
+도:掏:가릴(선택)할 도
+도:酴:두번 빚은 술 도
+도:鞀:소고 도
+도:盗:
+도:謟:
+도:迯:
+도:禂:
+도:荼:
 도:翿:
 도:䆃:
 도:图:
-도:忉:근심할 도
 도:熖:
 도:舠:
-도:弢:활집 도
-도:稌:찰벼 도
 도:夲:
-도:鞱:너그러울 도
 도:幍:
 도:咷:
 도:釖:
 도:綯:
 도:裪:
-도:搯:두드릴 도
-도:檮:그루터기 도
 도:㨶:
 도:朷:
 도:縚:
-도:慆:기뻐할 도
 도:噵:
 도:鞉:
 도:䵚:
-도:壔:작은 성 도
-도:洮:
 도:唋:
 도:捈:
 도:暏:
 도:阇:
 도:韬:
 도:鱽:
-도:掏:가릴(선택)할 도
-도:酴:두번 빚은 술 도
-도:鞀:소고 도
 도:凃:
 도:刂:선칼도방
 도:匋:
 독:牘:편지 독
 독:犢:송아지 독
 독:纛:깃일산
-독:独:
 독:黷:더러울 독
-독:讟:
 독:櫝:함 독
-독:秃:
 독:髑:
+독:独:
+독:讟:
+독:秃:
 독:凟:
 독:匵:
 독:殰:
 돈:暾:아침해 돈
 돈:墩:돈대 돈
 돈:焞:귀갑 지지는 불 돈
-돈:炖:
 돈:潡:큰 물 돈
-돈:橔:
 돈:噸:
+돈:弴:그림 그린 활 돈
+돈:瓲:
+돈:躉:거룻배 돈
+돈:鐓:
+돈:炖:
+돈:橔:
 돈:獤:
 돈:㬿:
 돈:㹠:
 돈:顿:
 돈:饨:
 돈:鲀:
-돈:弴:그림 그린 활 돈
-돈:瓲:
-돈:躉:거룻배 돈
-돈:鐓:
 돈:崸:
 돈:庉:
 돈:扽:
 돌:乭:이름 돌, 사람이름 돌
 돌:咄:꾸짖을 돌
 돌:堗:굴똑 돌
+돌:宊:
 돌:腯:
 돌:湥:
 돌:揬:
 돌:㟮:
 돌:㻠:
 돌:饳:
-돌:宊:
 돌:嚉:
 돌:怢:
 돌:葖:
 동:錬:보습날 동
 동:僮:아이 동
 동:蕫:황모 동
-동:諌:
-동:働:
 동:彤:붉은 칠 동
-동:埬:
 동:侗:무지할 동
 동:峒:산이름 동
-동:曈:
-동:㨂:
-동:穜:
 동:佟:
 동:蝀:무지개 동
 동:涷:마룻대 동
 동:垌:항아리 동
 동:朣:달 뜰 동
+동:橦:나무이름 동
+동:艟:배 동
+동:茼:쏙갓 동
+동:哃:클말할 동
+동:苳:겨울살이 동
+동:鮗:전어 동
+동:諌:
+동:働:
+동:埬:
+동:曈:
+동:㨂:
+동:穜:
 동:詷:
 동:膧:
 동:㠉:
-동:橦:나무이름 동
 동:挏:
 동:烔:
 동:絧:
 동:餇:
-동:艟:배 동
-동:茼:쏙갓 동
 동:懂:
 동:湩:
 동:獞:
 동:铜:
 동:鲖:
 동:鸫:
-동:哃:클말할 동
-동:苳:겨울살이 동
-동:鮗:전어 동
 동:倲:
 동:偅:
 동:勭:
 두:逗:머무를 두
 두:荳:콩 두
 두:枓:두공 두, 주두 두
-두:紏:
 두:斁:섞을 두
 두:蠹:좀 두
 두:肚:밥통 두
-두:蠧:
 두:陡:절벽 두
 두:蚪:올챙이 두
+두:抖:퍼주거릴 두
+두:脰:목 두
+두:吋:
+두:紏:
+두:蠧:
 두:餖:
 두:㞳:
-두:抖:퍼주거릴 두
 두:㪷:
 두:兠:
 두:㺶:
-두:脰:목 두
 두:阧:
 두:﨣:
 두:䇺:
 두:窦:
 두:钭:
 두:饾:
-두:吋:
 두:亠:의미없는 토
 두:侸:
 두:剅:
 둔:芚:채소 이름 둔, 나무싹 둔
 둔:遯:달아날 둔, 숨을 둔
 둔:窀:광중 둔
-둔:吨:
 둔:迍:머뭇거릴 둔
+둔:吨:
 둔:钝:
 둔:坉:
 둔:臋:
 등:嶝:고개 등, 비탈 등
 등:謄:베낄 등
 등:橙:등자나무 등, 궤 등
-등:䓁:
 등:滕:물 솟을 등
-등:蹬:
 등:鐙:등자 등
 등:灯:燈의 略字
 등:磴:돌 비탈길 등, 돌다리 등
-등:䒭:
 등:縢:봉할 등
 등:螣:등사 등
 등:墱:자드락길 등
+등:凳:걸상 등
+등:籐:대 기구 등
+등:䓁:
+등:蹬:
+등:䒭:
 등:簦:
 등:豋:
-등:凳:걸상 등
 등:驣:
 등:㽅:
 등:籘:
 등:誊:
 등:邓:
 등:镫:
-등:籐:대 기구 등
 등:僜:
 등:儯:
 등:噔:
 라:癩:약물 중독 라
 라:蘿:무 라, 소나무겨우살이 라
 라:喇:나팔
-라:覼:
 라:騾:노새 라
 라:囉:소리 읽힐 라
 라:鑼:징 라
 라:瘰:연주창 라
 라:臝:벌거벗을 라
-라:蠃:
 라:砢:
+라:倮:알몸 라
+라:曪:날 흐릴 라
+라:驘:옹 솥 라
+라:覼:
+라:蠃:
 라:灕:
 라:覶:
 라:玀:
 라:镙:
 라:骡:
 라:㑩:
-라:倮:알몸 라
-라:曪:날 흐릴 라
-라:驘:옹 솥 라
 라:亽:
 라:儸:
 라:剆:
 락:酪:진한 유즙 락, 타락 락
 락:珞:구슬 목걸이 락
 락:犖:얼룩소 락
+락:嗠:
 락:硌:
 락:濼:
 락:鉻:
 락:铬:
 락:饹:
 락:骆:
-락:嗠:
 락:峈:
 락:笿:
 락:餎:
 란:懶:게으를 란
 란:瀾:물결 란, 큰물결 란
 란:欒:나무 이름 란, 난나무 란
-란:乱:
 란:闌:가막을 란
 란:鑾:방울 란
 란:攔:막을 란
-란:䦨:
-란:滦:
-란:灤:
 란:襴:난삼 란
 란:嬾:게으를 란
 란:幱:내리다지 란
+란:灓:적실 란
+란:乱:
+란:䦨:
+란:滦:
+란:灤:
 란:斕:
 란:圝:
 란:圞:
-란:灓:적실 란
 란:灡:
 란:籣:
 란:兰:
 랄:辣:매울 랄
 랄:喇:말굽히할 랄
 랄:埒:바자울 랄
-랄:捋:
 랄:辢:辣과 同字
+랄:捋:
 랄:獭:
 랄:垃:
 랄:埓:
 람:欖:감람나무 람
 람:擥:攬과 同字, 잡아다릴 람
 람:襤:누더기 람
-람:覧:
 람:婪:탐할 람
+람:惏:떨릴 람
+람:覧:
 람:灠:
 람:壈:
 람:㲯:
 람:䰐:
 람:㩜:
-람:惏:떨릴 람
 람:囕:
 람:㑣:
 람:岚:
 랑:蜋:사마귀 랑
 랑:稂:강아지 풀 랑
 랑:榔:나무 이름 랑
+랑:硠:돌 부딪는 소라 랑
+랑:莨:수크령 랑
 랑:桹:
 랑:烺:
-랑:硠:돌 부딪는 소라 랑
 랑:蓈:
 랑:鋃:
-랑:莨:수크령 랑
 랑:欴:
 랑:艆:
 랑:㫰:
 래:崍:산 이름 래
 래:徠:올 래
 래:来:
+래:淶:강 이름 래
+래:騋:큰 말 래
+래:顂:
 래:勑:
 래:徕:
 래:莱:
 래:䅘:
 래:猍:
 래:琜:
-래:淶:강 이름 래
-래:騋:큰 말 래
 래:倈:
 래:箂:
-래:顂:
 래:棶:
 래:睞:
 래:錸:
 량:粱:기장 량
 량:倆:재주 량, 공교할 량
 량:粮:糧과 同字, 양식 량
-량:两:
-량:両:
 량:涼:서늘할 량
 량:魎:도깨비 량
 량:踉:뛸 량
-량:惊:
-량:㾗:
 량:椋:들보 량
 량:悢:슬퍼할 량
+량:喨:소리 맑을 량
+량:两:
+량:両:
+량:惊:
+량:㾗:
 량:湸:
 량:緉:
 량:裲:
 량:辆:
 량:辌:
 량:魉:
-량:喨:소리 맑을 량
 량:哴:
 량:啢:
 량:墚:
 려:蠣:굴 려
 려:櫚:종려나무 려
 려:厲:갈 려
-려:吕:
 려:臚:살갗 려
 려:癘:창질 려
-려:沴:
 려:膂:등골 뼈 려
 려:蠡:좀먹을 려
-려:荔:
 려:糲:현미 려
+려:唳:울 려
+려:梠:평고대 려
+려:鑢:줄 려
+려:儢:맘에 하기 싫을 려
+려:邌:천천히 걸을 려
+려:吕:
+려:沴:
+려:荔:
 려:丽:
 려:侣:
-려:唳:울 려
 려:盭:
 려:瓈:
-려:梠:평고대 려
 려:欐:
 려:蟸:
 려:黧:
-려:鑢:줄 려
 려:棙:
 려:穭:
 려:廲:
 려:驴:
 려:骊:
 려:鲡:
-려:儢:맘에 하기 싫을 려
-려:邌:천천히 걸을 려
 려:勴:
 려:囇:
 려:婯:
 력:靂:벼락 력
 력:櫟:상수리나무 력
 력:櫪:말구유 력
-력:歴:
 력:鬲:
+력:酈:땅 이름 력
+력:攊:
+력:癧:연주창 력
+력:轣:갈 력
+력:歴:
 력:暦:
 력:䔉:
 력:厯:
 력:皪:
-력:酈:땅 이름 력
 력:屴:
 력:朸:
 력:檪:
 력:郦:
 력:镉:
 력:雳:
-력:攊:
-력:癧:연주창 력
-력:轣:갈 력
 력:儮:
 력:厤:
 력:叻:
 련:怜:연리할 련
 련:璉:호련 련, 종묘제기 련
 련:攣:걸릴 련
-련:恋:
 련:錬:
-련:堜:
 련:臠:저민고기 련
 련:孌:아름다울 련
 련:鰱:연어 련
 련:楝:멀구슬나무 련
+련:鏈:쇠사슬 련
+련:孿:
+련:湅:누일 련
+련:鰊:고기 이름 련
+련:恋:
+련:堜:
 련:摙:
 련:䏈:
-련:鏈:쇠사슬 련
 련:縺:
 련:聨:
 련:㜻:
 련:辇:
 련:连:
 련:鲢:
-련:孿:
-련:湅:누일 련
-련:鰊:고기 이름 련
 련:僆:
 련:嗹:
 련:噒:
 렬:洌:맑을 렬
 렬:捩:비틀 렬
 렬:颲:사나운 바람 렬
+렬:挒:
 렬:茢:
 렬:迾:
 렬:鋢:
 렬:㭩:
 렬:锊:
 렬:䴕:
-렬:挒:
 렬:劽:
 렬:咧:
 렬:哷:
 렴:簾:발 렴
 렴:殮:염할 렴
 렴:歛:
-렴:帘:
 렴:籟:
 렴:瀲:넘칠 렴
 렴:奩:화장 상자 렴
-렴:㢘:
 렴:獫:
 렴:磏:거친 숫돌 렴
+렴:帘:
+렴:㢘:
 렴:嬚:
 렴:鐮:
 렴:搛:
 령:另:나눌 령, 다를 령, 헤어질 령
 령:岭:산 이름 령
 령:泠:깨우칠 령
-령:灵:
 령:苓:도꼬마리 령
-령:坽:
 령:鴒:할미새 령
-령:㱓:
 령:蛉:장자리 령
-령:櫺:
 령:欞:격자창 령
+령:呤:속삭일 령
+령:昤:날 빛 영롱할 령
+령:姈:계집 슬기로울 령
+령:秢:벼 처음 익을 령
+령:軨:사냥 수레 령
+령:鹷:나이 령
+령:灵:
+령:坽:
+령:㱓:
+령:櫺:
 령:醽:
 령:霛:
 령:瓴:
-령:呤:속삭일 령
 령:狑:
-령:昤:날 빛 영롱할 령
 령:舲:
 령:彾:
 령:竛:
 령:鸰:
 령:齢:
 령:龄:
-령:姈:계집 슬기로울 령
-령:秢:벼 처음 익을 령
-령:軨:사냥 수레 령
-령:鹷:나이 령
 령:刢:
 령:孁:
 령:拎:
 례:豊:禮의 古字
 례:隷:隸와 同字, 붙을 례
 례:醴:단술 례
-례:隸:붙을 례
 례:澧:강 이름 례
+례:隸:붙을 례
+례:鱧:가물치 례
 례:礼:
 례:㘑:
 례:鳢:
-례:鱧:가물치 례
 례:櫔:
 례:欚:
 례:濿:
 로:櫓:방패 로
 로:瀘:강 이름 로
 로:潦:
-로:劳:
 로:鑪:화로 로
 로:鱸:농어 로
 로:壚:흑토 로
 로:騾:
 로:艪:艫와 同字
-로:㳣:
 로:顱:머리뼈 로
 로:艫:뱃머리 로
 로:鸕:가마우지 로
+로:轤:고패 로
+로:玈:검을 로
+로:窂:우리 로
+로:滷:소금밭 로
+로:癆:종독 로
+로:磠:
+로:鐪:부레 로
+로:髗:해골 로
+로:劳:
+로:㳣:
 로:澇:
 로:鏴:
-로:轤:고패 로
 로:璐:
-로:玈:검을 로
 로:獹:
 로:罏:
 로:攎:
 로:簵:
 로:䳓:
-로:窂:우리 로
 로:咾:
 로:嫪:
 로:櫨:
 로:鲈:
 로:鸬:
 로:鹭:
-로:滷:소금밭 로
-로:癆:종독 로
-로:磠:
-로:鐪:부레 로
-로:髗:해골 로
 로:僗:
 로:哰:
 로:嘮:
 록:麓:신기슭 록, 산기슭 록
 록:碌:돌 모양 록
 록:菉:조개풀 록
-록:录:
-록:盝:
 록:淥:밭을 록
-록:籙:
-록:禄:
 록:漉:거를 록
-록:醁:
-록:緑:
 록:彔:나무 깍을 록
 록:騄:말이름 록
 록:簏:대 상자 록
 록:轆:도르래 록
+록:圥:버섯 록
+록:录:
+록:盝:
+록:籙:
+록:禄:
+록:醁:
+록:緑:
 록:廘:
 록:録:
 록:㖨:
 록:渌:
 록:箓:
 록:辘:
-록:圥:버섯 록
 록:塶:
 록:娽:
 록:摝:
 롱:朧:흐릿할 롱, 침침할 롱
 롱:瀧:적실
 롱:隴:고개 이름 롱
-롱:櫳:
-롱:壠:
 롱:礱:갈 롱
 롱:曨:어스레할 롱
-롱:巃:
 롱:蘢:개여뀌 롱
 롱:儱:건목칠 롱
+롱:攏:누를 롱
+롱:龎:
+롱:櫳:
+롱:壠:
+롱:巃:
 롱:哢:
 롱:礲:
-롱:攏:누를 롱
 롱:䏊:
 롱:嚨:
 롱:竉:
 롱:聋:
 롱:茏:
 롱:陇:
-롱:龎:
 롱:巄:
 롱:挊:
 롱:挵:
 뢰:瀨:여울 뢰, 물결 뢰
 뢰:罍:술독 뢰
 뢰:耒:쟁기 뢰
-뢰:頼:
 뢰:籟:
 뢰:酹:부을 뢰
-뢰:瀬:
 뢰:誄:뇌사 뢰
 뢰:礧:바위너설 뢰
 뢰:纇:실 마디 뢰
+뢰:蕾:꽃봉오리 뢰
+뢰:顂:
+뢰:攂:
+뢰:礌:돌 굴러내릴 뢰
+뢰:頼:
+뢰:瀬:
 뢰:㵢:
 뢰:䨓:
-뢰:蕾:꽃봉오리 뢰
 뢰:藾:
 뢰:鐳:
-뢰:顂:
 뢰:傫:
 뢰:櫑:
 뢰:瓃:
 뢰:赉:
 뢰:赖:
 뢰:镭:
-뢰:攂:
-뢰:礌:돌 굴러내릴 뢰
 뢰:壨:
 뢰:擂:
 뢰:檑:
 료:繚:감길 료
 료:膋:발기름 료
 료:撩:다스릴 료
+료:暸:밝을 료
+료:獠:밤사냥 료
+료:鐐:은 료
+료:嘹:울 료
+료:嫽:외조모 료
+료:飂:높이 부는 바람 료
+료:飉:바람 료
 료:憀:
 료:憭:
 료:鷯:
 료:䝤:
-료:暸:밝을 료
-료:獠:밤사냥 료
 료:璙:
-료:鐐:은 료
 료:炓:
 료:㵳:
-료:嘹:울 료
 료:尞:
 료:橑:
 료:爎:
 료:辽:
 료:镣:
 료:鹩:
-료:嫽:외조모 료
-료:飂:높이 부는 바람 료
-료:飉:바람 료
 료:佬:
 료:叾:
 료:尥:
 료해도:了解度:
 료화:燎火:
 룡:龍:용 룡
+룡:龒:龍의 古字
 룡:矓:
 룡:眬:
 룡:龙:
-룡:龒:龍의 古字
 룡:徿:
 룡:爖:
 룡:竜:
 루:褸:남루할 루
 루:蔞:쑥 루, 물쑥 루
 루:瘻:부스럼 루, 헌곳 루
+루:螻:땅강아지 루
+루:僂:구부릴 루
+루:髏:해굴 루
+루:嶁:봉우리 루
+루:慺:정성스러울 루
+루:嘍:시끄러울 루
+루:耬:씨 뿌리는 기구 루
 루:楼:
 루:屡:
-루:螻:땅강아지 루
 루:泪:
 루:蝼:
 루:塁:
-루:僂:구부릴 루
 루:摟:
-루:髏:해굴 루
 루:塿:
-루:嶁:봉우리 루
-루:慺:정성스러울 루
 루:䮫:
 루:嫘:
 루:屚:
 루:镂:
 루:髅:
 루:䁖:
-루:嘍:시끄러울 루
-루:耬:씨 뿌리는 기구 루
 루:厽:
 루:櫐:
 루:氀:
 류:榴:석류나무 류
 류:硫:유황 류
 류:瀏:맑을 류
-류:瑬:
 류:纍:갇힐 류
 류:鶹:올빼미 류
 류:縲:포승 류
-류::
+류::
 류:遛:머무를 류
+류:橊:榴의 本字
+류:飂:
+류:霤:
 류:騮:
 류:鏐:
 류:旈:
 류:䄂:
-류:橊:榴의 本字
 류:鎏:
 류:罶:
 류:飀:
 류:馏:
 류:骝:
 류:鹨:
-류:飂:
 류:嚠:
 류:塯:
 류:媹:
 륙:六:여섯 륙
 륙:陸:뭍 륙
 륙:戮:죽일 륙
+륙:勠:협력할 륙
 륙:僇:
 륙:稑:
-륙:勠:협력할 륙
 륙:穋:
 륙:陆:
 륙:剹:
 률:栗:밤나무 률
 률:慄:두려워할 률, 두려울 률
 률:嵂:가파를 률
-률:篥:
 률:溧:강 이름 률
+률:篥:
 률:㟳:
 률:硉:
 률:瑮:
 르클랑셰전지:르클랑셰電池:
 륵:勒:굴레 륵
 륵:肋:갈비 륵
+륵:泐:돌 갈라질 륵
 륵:玏:
 륵:仂:
 륵:扐:
-륵:泐:돌 갈라질 륵
 륵:鳓:
 륵:嘞:
 륵:忇:
 를:㔹:
 름:凜:찰 름
 름:廩:곳집 름
-름:檩:
 름:凛:찰 름
+름:澟:서늘할 름
+름:檩:
 름:廪:
 름:懍:
 름:懔:
-름:澟:서늘할 름
 름:檁:
 름:癛:
 름:癝:
 릉:綾:비단 릉
 릉:菱:蔆과 同字, 마름 릉
 릉:稜:모 릉
+릉:倰:속일 릉
+릉:蔆:마름 릉
 릉:棱:
 릉:崚:
 릉:淩:
 릉:夌:
-릉:倰:속일 릉
 릉:庱:
 릉:掕:
 릉:睖:
 릉:鯪:
 릉:绫:
 릉:鲮:
-릉:蔆:마름 릉
 릉:堎:
 릉:婈:
 릉:愣:
 리:漓:스며들 리
 리:莅:다다를 리
 리:离:산신 리
-리:詈:
 리:螭:교륭 리
 리:俐:똑똑할 리
 리:嫠:과부 리
 리:魑:도깨비 리
-리:纚:
 리:貍:삵 리
 리:邐:이어질 리
 리:涖:다다를 리
+리:哩:어조사 리
+리:蜊:참조개 리
+리:黐:끈끈이 리
+리:剺:벗길 리
+리:詈:
+리:纚:
 리:鸝:
 리:摛:
 리:醨:
 리:蒞:
-리:哩:어조사 리
 리:蘺:
 리:褵:
 리:縭:
 리:樆:
 리:犂:
 리:蔾:
-리:蜊:참조개 리
-리:黐:끈끈이 리
 리:俬:
 리:娌:
 리:棃:
 리:锂:
 리:鲤:
 리:鹂:
-리:剺:벗길 리
 리:兣:
 리:刕:
 리:剓:
 린:鄰:이웃 린
 린:磷:돌 을 틈물이 흐르는 모양 린
 린:粼:물 맑을 린
-린:遴:
 린:嶙:가파를 린
 린:驎:워라말 린
 린:轔:수레 소리 린
 린:繗:이을 린
+린:悋:아낄 린
+린:躙:짓밟을 린
+린:鏻:굳셀 린
+린:粦:도깨비 불 린
+린:遴:
 린:恡:
 린:瞵:
 린:䗲:
 린:疄:
-린:悋:아낄 린
-린:躙:짓밟을 린
 린:撛:
-린:鏻:굳셀 린
 린:僯:
 린:厸:
 린:轥:
 린:辚:
 린:邻:
 린:鳞:
-린:粦:도깨비 불 린
 린:亃:
 린:壣:
 린:斴:
 마:瑪:마노 마, 옥돌이름 마
 마:碼:마노 마, 옥돌 마
 마:麽:잘 마
-마:麼:
 마:麿:갈 마
 마:劘:깍을 마
+마:媽:어미 마
+마:螞:말거머리 마
+마:蟇:개구리 마
+마:麼:
 마:蟆:
 마:亇:
 마:嗎:
 마:禡:
 마:䔍:
-마:媽:어미 마
 마:嘛:
-마:螞:말거머리 마
-마:蟇:개구리 마
 마:鎷:
 마:㦄:
 마:吗:
 막:膜:막 막, 살속의 가죽 막
 막:寞:쓸쓸할 막
 막:邈:멀 막, 아득할 막
-막:瘼:
 막:藐:
-막:幙:
 막:鏌:칼 이름 막
-막:暯:
 막:瞙:눈 흐릴 막
+막:瘼:
+막:幙:
+막:暯:
 막:嗼:
 막:鄚:
 막:饃:
 만:曼:끌 만, 길 만
 만:巒:뫼 만, 산봉우리 만
 만:謾:속일 만
-만:湾:
-만:晚:
-만:満:
 만:幔:막 만
-만:熳:
 만:懣:
-만:㬅:
 만:嫚:업신여길 만
 만:蹣:비틀거릴 만
-만:鬛:
 만:墁:흙손 만
 만:悗:
 만:縵:무늬 없는 비단 만
+만:鏝:흙손 만
+만:鬘:머리장식 만
+만:鏋:금 만
+만:湾:
+만:晚:
+만:満:
+만:熳:
+만:㬅:
+만:鬛:
 만:澫:
 만:脕:
-만:鏝:흙손 만
 만:僈:
-만:鬘:머리장식 만
 만:摱:
 만:睌:
 만:矕:
 만:颟:
 만:馒:
 만:鳗:
-만:鏋:금 만
 만:卐:
 만:塆:
 만:壪:
 말:沫:거품 말, 물방울 말
 말:唜:끝
 말:茉:말리 말
-말:昩:
 말:帕:
 말:秣:꼴 말
+말:昩:
 말:袜:
 말:妺:
 말:韈:
 망:茫:아득할 망
 망:網:그물 망
 망:芒:까끄라기 망, 싹 망
-망:惘:멍할 망
 망:莽:우거질 망, 풀이 우거진 망
 망:邙:산 이름 망, 북망산 망
 망:輞:바퀴테 망
+망:惘:멍할 망
 망:魍:도깨비 망
 망:莾:마디 짧은 대 망
 망:蟒:이무기 망
+망:漭:넓을 망
+망:汒:황급할 망
 망:网:그물
 망:亾:
 망:鋩:
 망:蠎:
-망:漭:넓을 망
 망:㒺:
 망:㤀:
 망:兦:
 망:㕵:
 망:䋄:
-망:汒:황급할 망
 망:恾:
 망:朢:
 망:杗:
 매:煤:그을음 매
 매:呆:어리석을 매
 매:楳:梅의 古字
-매:浼:
-매:霾:
 매:眛:어두울 매
 매:莓:나무딸기 매
+매:玫:매괴 매
+매:沬:
+매:苺:딸기 매
+매:酶:술밑 매
+매:霉:매우 매
+매:浼:
+매:霾:
 매:䨪:
 매:禖:
-매:玫:매괴 매
 매:毎:
 매:抺:
-매:沬:
 매:痗:
-매:苺:딸기 매
-매:酶:술밑 매
 매:佅:
 매:凂:
 매:勱:
 매:駡:
 매:鬽:
 매:骂:
-매:霉:매우 매
 매:买:
 매:劢:
 매:卖:
 맥:陌:두렁 맥, 밭둑길 맥
 맥:驀:말탈 맥
 맥:脉:脈의 古字
+맥:貃:오랑캐 맥
+맥:貘:짐승 이름 맥
 맥:霡:
 맥:貉:
 맥:霢:
 맥:眽:
-맥:貃:오랑캐 맥
 맥:覛:
 맥:麦:
 맥:蓦:
-맥:貘:짐승 이름 맥
 맥:帞:
 맥:眿:
 맥:絈:
 맹:黽:
 맹:甍:
 맹:甿:
+맹:虻:
+맹:儚:
 맹:蝱:
 맹:艋:
-맹:虻:
 맹:蕄:
 맹:鄳:
 맹:锰:
-맹:儚:
 맹:勐:
 맹:掹:
 맹:擝:
 멱:汨:물이름 멱
 멱:蓂:
 멱:冪:덮을 멱
-멱:羃:
 멱:糸:실
-멱:覔:
 멱:幎:덮을 멱
+멱:羃:
+멱:覔:
 멱:幂:
 멱:纟:
 멱:觅:
 면:冕:면류관 면
 면:沔:물 흐를 면
 면:娩:
-면:俛:힘쓸 면
 면:緬:가는 실 면, 아득할 면
 면:眄:애꾸눈 면, 곁눈질할 면
 면:麵:麪과 同字, 밀가루 면
 면:棉:목화 면
+면:俛:힘쓸 면
 면:緜:햇솜 면
-면:靣:
 면:麪:밀가루 면
 면:糆:麪과 同字
 면:湎:빠질 면
+면:靣:
 면:丏:
 면:偭:
 면:㴐:
 명:茗:차 싹 명, 차의 싹 명
 명:椧:홈 통 명
 명:黽:
-명:㝠:
 명:洺:강 이름 명
+명:㝠:
 명:眀:
 명:凕:
 명:㫥:
 모:耗:줄 모, 없을 모
 모:摸:찾을 모, 본뜰 모
 모:牡:수컷 모
-모:糢:模의 俗字, 모호할 모
 모:眸:눈동자 모
 모:摹:베낄 모
 모:瑁:서옥 모, 대모 모
 모:芼:풀 우거질 모, 나물 모
 모:姆:여스승 모
+모:糢:模의 俗字, 모호할 모
 모:耄:늙은이 모
 모:侔:가지런 할 모
 모:髦:다팔머리 모
 모:旄:깃대 장식 모
 모:媢:강새암 할 모
 모:蟊:蝥와 同字
-모:冐:
-모:麰:
 모:嫫:예쁠 모
 모:眊:눈 흐릴 모
-모:㡌:
 모:皃:貌와 同字
-모:謩:
 모:姥:할미 모
 모:蝥:해충 모
+모:粍:밀리메트로 모
+모:鉾:칼 끝 모
+모:恈:탐할 모
+모:冐:
+모:麰:
+모:㡌:
+모:謩:
 모:氁:
 모:秏:
 모:䫉:
-모:粍:밀리메트로 모
 모:橅:
-모:鉾:칼 끝 모
 모:䖥:
 모:牦:
 모:谋:
 모:谟:
-모:恈:탐할 모
 모:兞:
 모:冃:
 모:哞:
 목:穆:화목할 목, 화할 목
 목:沐:머리감을 목
 목:鶩:집오리 목
+목:苜:거여목 목
+목:凩:찬바람 목
 목:楘:
 목:莯:
-목:苜:거여목 목
 목:霂:
 목:䳱:
 목:㜈:
 목:炑:
 목:钼:
 목:鹜:
-목:凩:찬바람 목
 목:坶:
 목:杢:
 목:狇:
 몽:朦:풍부할 몽, 풍부한 몽
 몽:矇:소경 몽
 몽:濛:가랑비 올 몽
-몽:梦:
 몽:曚:어두울 몽
 몽:瞢:어두울 몽
+몽:幪:덮을 몽
+몽:雺:안개 몽
+몽:懞:어두울 몽
+몽:艨:싸움배 몽
+몽:儚:
+몽:溕:
+몽:鸏:비둘기 몽
+몽:梦:
 몽:懵:
 몽:冡:
-몽:幪:덮을 몽
 몽:懜:
 몽:䑃:
 몽:蠓:
 몽:㠓:
-몽:雺:안개 몽
 몽:饛:
-몽:懞:어두울 몽
-몽:艨:싸움배 몽
 몽:矒:
 몽:霿:
 몽:䤓:
 몽:䝉:
 몽:鹲:
-몽:儚:
-몽:溕:
-몽:鸏:비둘기 몽
 몽:夣:
 몽:檬:
 몽:氋:
 묘:杳:어두울 묘, 아득할 묘
 묘:竗:땅 이름 묘
 묘:錨:닻 묘
-묘:庙:
 묘:眇:애꾸눈 묘
 묘:藐:작을 묘
+묘:淼:물 아득할 묘
+묘:貓:猫와 同字
+묘:庙:
 묘:緲:
 묘:畒:
 묘:玅:
-묘:淼:물 아득할 묘
-묘:貓:猫와 同字
 묘:茆:
 묘:篎:
 묘:缈:
 무:珷:옥돌 무, 옥돌이름 무
 무:楙:무성할 무, 아름다울 무, 모과나무 무
 무:廡:집 무, 처마 무, 지붕 무
-무:抚:
-무:瞀:
 무:騖:달릴 무, 질주할 무
 무:膴:포 무, 크게 저민 고기 무
+무:儛:舞와 同字
+무:嘸:분명하지 않을 무, 모호한 모양 무
+무:抚:
+무:瞀:
 무:袤:
 무:鍪:
 무:婺:
 무:骛:
 무:鹀:
 무:鹉:
-무:儛:舞와 同字
-무:嘸:분명하지 않을 무, 모호한 모양 무
 무:仫:
 무:劺:
 무:呣:
 문:刎:목 벨 문, 자를 문, 끊을 문
 문:們:들 문, 무리 문
 문:雯:구름 무늬 문
-문:闻:
-문:问:
-문:门:
 문:捫:어루만질 문, 쓰다듬을 문
-문:懑:
 문:懣:번거로울 문
-문:㦖:
-문:脗:
 문:抆:닦을 문, 문지를 문
 문:忞:
 문:悗:잊어버릴 문
 문:炆:따뜻할 문
+문:匁:몸메 문
+문:忟:
+문:璊:붉은 옥 문
+문:闻:
+문:问:
+문:门:
+문:懑:
+문:㦖:
+문:脗:
 문:暪:
 문:絻:
 문:蚉:
 문:纹:
 문:钔:
 문:阌:
-문:匁:몸메 문
-문:忟:
-문:璊:붉은 옥 문
 문:伆:
 문:勽:
 문:呡:
 미:弭:활고자 미, 그칠 미
 미:糜:죽 미, 싸라기 미
 미:縻:고삐 미, 얽어맬 미
-미:㫆:
 미:亹:힘쓸 미, 문채가 있는 모양 미
-미:眯:
 미:瀰:물 넓을 미
 미:麋:큰사슴 미, 부서질 미
 미:敉:어루만질 미
+미:媺:착하고 아름다울 미
+미:獼:원숭이 미
+미:娓:장황할 미, 힘쓸 미
+미:蘼:장미 미, 천궁 미
+미:媄:빛 고울 미
+미:苿:
+미:㫆:
+미:眯:
 미:冞:
 미:洣:
 미:罙:
 미:㣲:
-미:媺:착하고 아름다울 미
-미:獼:원숭이 미
 미:麛:
-미:娓:장황할 미, 힘쓸 미
 미:㜷:
 미:䞔:
 미:郿:
 미:㜫:
 미:㳽:
-미:蘼:장미 미, 천궁 미
 미:浘:
 미:眫:
 미:㞑:
 미:镁:
 미:镅:
 미:鹛:
-미:媄:빛 고울 미
-미:苿:
 미:侎:
 미:咩:
 미:咪:
 민:緡:낚시줄 민, 입힐 민
 민:黽:힘쓸 민, 맹꽁이 민
 민:閩:종족이름 민
+민:忞:강인할 민
+민:暋:굳셀 민
+민:緍:낚시줄 민
+민:湣:낚시줄 민
+민:忟:강인할 민
+민:罠:그물 민
+민:苠:속대 민
+민:鰵:대구 민
 민:黾:
 민:僶:
 민:渑:
-민:忞:강인할 민
 민:澠:
-민:暋:굳셀 민
-민:緍:낚시줄 민
 민:慜:
-민:湣:낚시줄 민
 민:潣:
 민:敃:
 민:燘:
 민:闷:
 민:闽:
 민:鳘:
-민:忟:강인할 민
-민:罠:그물 민
-민:苠:속대 민
-민:鰵:대구 민
 민:冺:
 민:刡:
 민:勄:
 밀:蜜:꿀 밀
 밀:謐:고요할 밀
 밀:宓:
-밀:宻:
-밀:谧:
 밀:樒:침향 밀
 밀:滵:물 흐르는 모양 밀
+밀:宻:
+밀:谧:
 밀:嘧:
 밀:峚:
 밀:櫁:
 박:膊:포 박, 어깨 박
 박:雹:누리 박, 우박 박
 박:璞:옥덩어리 박
+박:亳:땅이름 박
+박:駮:짐승이름 박
+박:鎛:종 박
+박:墣:
+박:欂:주두 박
+박:牔:박공 박
+박:髆:어깨쭉지 박
 박:剥:
 박:敀:
-박:亳:땅이름 박
 박:礴:
 박:襮:
 박:廹:
 박:愽:
 박:䪨:
-박:駮:짐승이름 박
-박:鎛:종 박
 박:礡:
 박:檏:
 박:擈:
 박:煿:
 박:鑮:
-박:墣:
 박:彴:
 박:窇:
 박:㩧:
 박:飑:
 박:馎:
 박:驳:
-박:欂:주두 박
-박:牔:박공 박
-박:髆:어깨쭉지 박
 박:啪:
 박:噗:
 박:嚗:
 반:盼:곁눈질 할 반, 눈자위 반
 반:磐:넓을 반, 반석 반
 반:瘢:흉터 반, 부스럼자국 반
-반:盘:
 반:胖:희생 반
 반:蹣:
-반:襻:
-반:鞶:
 반:扳:끌 반
-반:癍:
 반:搫:덜 반
 반:頖:풀릴 반
-반:憣:
-반:詊:
 반:攽:나눌 반
 반:朌:구실 반
+반:仮:反과 同字
+반:媻:비틀거릴 반
+반:肦:나눌 반
+반:螌:가뢰 반
+반:盘:
+반:襻:
+반:鞶:
+반:癍:
+반:憣:
+반:詊:
 반:斒:
 반:牉:
 반:㜶:
 반:㮽:
 반:䛀:
-반:仮:反과 同字
 반:矾:
 반:绊:
 반:颁:
 반:饭:
-반:媻:비틀거릴 반
-반:肦:나눌 반
-반:螌:가뢰 반
 반:冸:
 반:坢:
 반:奤:
 반당침:半당침:
 반대:反對:
 반대:飯臺:
-반대:大:
+반대:大:
 반대간섭:反對干涉:
 반대개념:反對槪念:
 반대계약:反對契約:
 발:勃:갑작스러울 발, 발끈할 발
 발:魃:가물 귀신 발
 발:醱:술 괼 발
-발:钵:
 발:孛:
 발:浡:일어날 발
+발:鈸:방울 발
+발:鵓:집비둘기 발
+발:哱:어지러울 발
+발:脖:배꼽 발
+발:钵:
 발:発:
 발:彂:
 발:綍:
 발:髪:
 발:沷:
 발:㪍:
-발:鈸:방울 발
 발:墢:
 발:茇:
 발:㧞:
-발:鵓:집비둘기 발
 발:䟦:
-발:哱:어지러울 발
 발:袚:
 발:襏:
 발:抜:
 발:饽:
 발:鲅:
 발:鹁:
-발:脖:배꼽 발
 발:侼:
 발:叐:
 발:坺:
 방:磅:돌 떨어지는 소리 방
 방:舫:배 방, 사공 방
 방:蒡:인동 덩굴 방, 우엉 방
-방:霶:
 방:仿:헤멜 방
 방:牓:패 방
 방:髣:비슷할 방
 방:厖:클 방
+방:魴:방어 방
+방:搒:배저을 방
+방:幫:도울 방
+방:螃:방게 방
+방:徬:시중들 방
+방:旊:옹기장 방
+방:梆:목어 방
+방:舽:배 방
+방:鎊:깎을 방
+방:龎:
+방:霶:
 방:綁:
 방:逄:
 방:鈁:
 방:雱:
 방:狵:
 방:㮄:
-방:魴:방어 방
-방:搒:배저을 방
 방:庬:
-방:幫:도울 방
 방:哤:
 방:埅:
 방:胮:
 방:駹:
-방:螃:방게 방
 방:昘:
 방:汸:
 방:浝:
 방:镑:
 방:鲂:
 방:鳑:
-방:徬:시중들 방
-방:旊:옹기장 방
-방:梆:목어 방
-방:舽:배 방
-방:鎊:깎을 방
-방:龎:
 방:匚:상자
 방:嗙:
 방:垹:
 배:盃:杯의 俗字, 잔 배
 배:褙:속적삼
 배:焙:불에 쬘 배, 말릴 배
-배:軰:
 배:坏:언덕 배
+배:坯:坏와 同字
+배:琲:구슬 꿰미 배
+배:扒:뺄 배
+배:蓓:꽃봉오리 배
+배:軰:
 배:环:
 배:桮:
 배:辈:
 배:禙:
 배:柸:
 배:毰:
-배:坯:坏와 同字
-배:琲:구슬 꿰미 배
 배:肧:
 배:㚰:
 배:赔:
-배:扒:뺄 배
-배:蓓:꽃봉오리 배
 배:伓:
 배:俖:
 배:偝:
 백:魄:넋 백
 백:柏:나무 이름 백, 잣나무 백
 백:佰:백사람의어른
+백:粨:힉터메트르 백
 백:苩:
 백:銆:
 백:洦:
 백:鲌:
-백:粨:힉터메트르 백
 백:兡:
 백:岶:
 백:湐:
 번:幡:기 번, 수건 번
 번:樊:울 번, 어수선할 번
 번:翻:날 번
-번:畨:
 번:蘩:산흰쑥 번
-번:璠:
 번:繙:되풀이 풀이할 번
-번:旛:
 번:膰:제사 고기 번
+번:袢:속옷 번
+번:畨:
+번:璠:
+번:旛:
 번:轓:
 번:旙:
 번:瀿:
 번:籓:
 번:蠜:
 번:烦:
-번:袢:속옷 번
 번:僠:
 번:勫:
 번:噃:
 벌:閥:공훈 벌, 가문 벌
 벌:筏:떼 벌
 벌:橃:떼 벌
+벌:罸:罰과 同字
 벌:罚:
 벌:阀:
-벌:罸:罰과 同字
 벌:傠:
 벌:垡:
 벌:栰:
 범:帆:돛 범
 범:梵:범어 범, 웅얼거릴 범
 범:氾:넘칠 범, 물넘칠 범
+범:颿:돛 범
+범:笵:법 범
+범:訉:말 많을 범
 범:凢:
 범:軓:
-범:颿:돛 범
 범:杋:
 범:㠶:
 범:舤:
 범:㕨:
 범:䭵:
 범:钒:
-범:笵:법 범
-범:訉:말 많을 범
 범:凣:
 범:忛:
 범:柉:
 벽:蘗:황경나무 벽
 벽:檗:황벽나무 벽, 황백나무 벽
 벽:辟:임금 벽
-벽:薜:
 벽:擗:가슴칠 벽
-벽:皕:
 벽:甓:벽돌 벽
-벽:躄:
 벽:椑:
 벽:襞:주름 벽
 벽:疈:가를 벽
+벽:鷿:농병아리 벽
+벽:鼊:거북 벽
+벽:薜:
+벽:皕:
+벽:躄:
 벽:躃:
 벽:湢:
 벽:澼:
 벽:䌟:
 벽:鲾:
 벽:䴙:
-벽:鷿:농병아리 벽
-벽:鼊:거북 벽
 벽:噼:
 벽:堛:
 벽:孹:
 변:騈:나란히 할 변
 변:玭:
 변:籩:제기 이름 변
-변:拚:
-변:邉:
 변:抃:손뼉칠 변
 변:徧:
 변:忭:기뻐할 변
-변:変:
 변:汴:
+변:辮:
+변:駢:騈의 俗字
+변:腁:살갗 틀 변
+변:匾:
+변:賆:
+변:萹:
+변:骿:통갈비 변
+변:鴘:매 변
+변:拚:
+변:邉:
+변:変:
 변:釆:분별하다
 변:变:
 변:辺:
-변:辮:
-변:駢:騈의 俗字
 변:昪:
-변:腁:살갗 틀 변
 변:㺹:
-변:匾:
 변:跰:
-변:賆:
 변:胼:
 변:䪻:
 변:䮁:
 변:辫:
 변:边:
 변:骈:
-변:萹:
-변:骿:통갈비 변
-변:鴘:매 변
 변:匥:
 변:峅:
 변:汳:
 별:瞥:언뜻 볼 별, 눈을 깜짝하는 별
 별:鱉:鼈과 同字, 자라 별
 별:鼈:자라 별
+별:鷩:금계 별
+별:彆:활 뒤틀릴 별
 별:别:
 별:撇:
 별:蹩:
 별:莂:
-별:鷩:금계 별
 별:潎:
 별:䠥:
 별:瘪:
 별:鳖:
-별:彆:활 뒤틀릴 별
 별:丿:삐치다
 별:嫳:
 별:徶:
 병:輧:거마 소리 병
 병:棅:柄과 同字, 자루 병
 병:並:竝과 同字
+병:迸:달아날 병
+병:駢:騈의 俗字
+병:缾:두레박 병
+병:搒:
+병:塀:담 병
+병:絣:무늬없는 비단 병, 이을 병, 먹줄 튀길 병
+병:鈵:
+병:鉼:판금 병
+병:鋲:넓은 못 병, 징 병
 병:并:
 병:屏:
 병:併:
 병:餅:
 병:逬:
-병:迸:달아날 병
 병:瓶:
-병:駢:騈의 俗字
-병:缾:두레박 병
 병:帲:
 병:邴:
-병:搒:
 병:傡:
 병:陃:
 병:帡:
 병:竮:
 병:聠:
 병:㨀:
-병:塀:담 병
-병:絣:무늬없는 비단 병, 이을 병, 먹줄 튀길 병
 병:乒:
 병:幈:
 병:恲:
 병:頩:
 병:䈂:
 병:饼:
-병:鈵:
-병:鉼:판금 병
-병:鋲:넓은 못 병, 징 병
 병:偋:
 병:垪:
 병:寎:
 보:褓:포대기 보
 보:珤:寶의 古字, 보배 보
 보:湺:보
-보:宝:
 보:靌:
 보:簠:제기 이름 보
 보:俌:도울 보
 보:黼:수 보
 보:葆:풀 더부룩할 보
+보:捗:
+보:鞴:
+보:鴇:능에 보
+보:盙:簠의 本字
+보:宝:
 보:寳:
 보:莆:
 보:歩:
 보:踄:
 보:椺:
 보:賲:
-보:捗:
-보:鞴:
-보:鴇:능에 보
 보:堢:
 보:藵:
 보:㙛:
 보:辅:
 보:镨:
 보:鸨:
-보:盙:簠의 本字
 보:埗:
 보:媬:
 보:寚:
 복:蔔:무우 복, 치자꽃 복
 복:輹:복토 복, 바퀴통 복
 복:仆:
-복:袱:
 복:扑:칠 복
 복:幞:건 복
 복:濮:강 이름 복
-복:㒒:
 복:鵩:새 이름 복
+복:蝮:살무사 복
+복:墣:흙덩이 복
+복:蝠:박쥐 복
+복:箙:전동 복
+복:菔:무 복
+복:袱:
+복:㒒:
 복:菐:
 복:攴:치다
 복:葍:
 복:攵:치다
-복:蝮:살무사 복
 복:栿:
 복:覄:
 복:楅:
 복:襆:
-복:墣:흙덩이 복
 복:醭:
-복:蝠:박쥐 복
 복:澓:
 복:复:
 복:辐:
 복:鳆:
-복:箙:전동 복
-복:菔:무 복
 복:垘:
 복:棴:
 복:椱:
 봉:熢:연기 자욱할 봉, 불기운 봉
 봉:琫:칼집 장식 봉, 칼집장식옥 봉
 봉:丰:예쁠 봉
-봉:篈:
 봉:綘:縫과 同字
-봉:鳯:
 봉:篷:뜸 봉
-봉:塜:
 봉:葑:
+봉:夆:끌 봉
+봉:菶:풀 무성할 봉
+봉:鴌:鳳의 古字
+봉:篈:
+봉:鳯:
+봉:塜:
 봉:賵:
 봉:芃:
 봉:捀:
 봉:艂:
 봉:蠭:
 봉:髼:
-봉:夆:끌 봉
-봉:菶:풀 무성할 봉
 봉:唪:
 봉:崶:
 봉:淎:
 봉:缝:
 봉:赗:
 봉:锋:
-봉:鴌:鳳의 古字
 봉:仹:
 봉:埄:
 봉:埲:
 부:訃:부고 부, 통부 부
 부:阜:언덕 부
 부:膚:살갗 부, 피부 부
-부:俛:
 부:俯:구푸릴 부, 구부릴 부
 부:賻:부의 부
 부:斧:도끼 부
 부:缶:장군 부
 부:莩:풀 이름 부, 갈대청 부
 부:趺:책상다리할 부, 도사리어 앉을 부
+부:俛:
 부:艀:작은 배 부
 부:仆:엎드릴 부
 부:祔:합사할 부
 부:俘:사로잡을 부
-부:専:
 부:鈇:도끼 부
 부:拊:어루만질 부
 부:裒:모을 부
 부:蔀:빈지문 부
 부:榑:부상 부
 부:掊:그러모을 부
-부:仅:
 부:苻:귀목풀 부
 부:鮒:붕어 부
 부:蜉:하루살이 부
-부:痡:
-부:瓿:
-부:冨:
-부:棓:
 부:袝:
-부:郛:
 부:頫:머리 숙일 부
 부:抔:움킬 부
 부:涪:물거품 부
-부:釡:
 부:麩:밀기울 부
 부:玞:옥돌 부
 부:跗:발등 부
+부:罘:그물 부
+부:蚨:파랑강충이 부
+부:筟:대청 부
+부:胕:장부 부
+부:罦:그물 부
+부:芣:질경이 부
+부:媍:婦와 同字
+부:専:
+부:仅:
+부:痡:
+부:瓿:
+부:冨:
+부:棓:
+부:郛:
+부:釡:
 부:巭:
 부:滏:
 부:鳬:
-부:罘:그물 부
-부:蚨:파랑강충이 부
 부:尃:
 부:怤:
 부:捊:
 부:柎:
-부:筟:대청 부
-부:胕:장부 부
 부:咅:
 부:暊:
 부:砆:
 부:秿:
 부:㭪:
-부:罦:그물 부
-부:芣:질경이 부
 부:嚩:
 부:弣:
 부:捬:
 부:驸:
 부:鲋:
 부:麸:
-부:媍:婦와 同字
 부:伕:
 부:偩:
 부:剻:
 분:昐:햇빛
 분:体:용렬할 분
 분:氛:기운 분
-분:僨:
 분:棼:마룻대 분
 분:坌:먼지 분
 분:犇:달아날 분
 분:濆:뿜을 분
 분:蕡:들깨 분
+분:枌:나무 이름 분
+분:畚:삼태기 분
+분:朌:頒과 同字
+분:湓:용솟음할 분
+분:轒:병거 분
+분:帉:걸레 분, 행주 분
+분:棻:
+분:砏:큰 소리 분
+분:笨:거칠 분
+분:肦:머리 클 분
+분:膹:고기 삶은 국 분
+분:黺:옷에 오색 수 놓을 분
+분:鼢:두더지 분
+분:僨:
 분:蚡:
 분:黂:
-분:枌:나무 이름 분
 분:翂:
 분:衯:
-분:畚:삼태기 분
 분:玢:
 분:秎:
 분:羵:
 분:鼖:
-분:朌:頒과 同字
-분:湓:용솟음할 분
-분:轒:병거 분
 분:燌:
 분:瓫:
 분:訜:
 분:贲:
 분:锛:
 분:鲼:
-분:帉:걸레 분, 행주 분
-분:棻:
-분:砏:큰 소리 분
-분:笨:거칠 분
-분:肦:머리 클 분
-분:膹:고기 삶은 국 분
-분:黺:옷에 오색 수 놓을 분
-분:鼢:두더지 분
 분:倴:
 분:兝:
 분:喯:
 불:拂:떨 불, 떨칠 불
 불:弗:아닐 불, 말 불
 불:彿:비슷할 불
-불:咈:
 불:黻:수 불
 불:紱:인끈 불
-불:巿:
 불:髴:비슷할 불
-불:紼:
 불:祓:푸닥거리할 불
-불:怫:
 불:茀:풀 우거질 불
 불:芾:
-불:昢:
-불:刜:
 불:岪:산길 불
 불:艴:발끈할 불
+불:韍:폐슬 불
+불:咈:
+불:巿:
+불:紼:
+불:怫:
+불:昢:
+불:刜:
 불:坲:
 불:帗:
 불:煘:
 불:绂:
 불:绋:
 불:韨:
-불:韍:폐슬 불
 불:乀:
 불:冹:
 불:柫:
 붕:棚:시렁 붕, 사다리 붕
 붕:硼:붕산 붕, 약이름 붕
 붕:繃:묶을 붕
-붕:萠:
-붕:弸:
 붕:鬅:
-붕:塴:
 붕:堋:
 붕:漰:
+붕:萠:
+붕:弸:
+붕:塴:
 붕:掤:
 붕:椖:
 붕:綳:
 비:砒:비상 비
 비:翡:물총새 비, 비취새 비
 비:秕:쭉정이 비
-비:妣:죽은 어미 비
 비:賁:
 비:毗:도울 비, 밝을 비
 비:菲:엷을 비, 나물이름 비
 비:粃:쭉정이 비
 비:榧:비자나무 비
 비:枇:비파나무 비, 참빗 비
+비:妣:죽은 어미 비
 비:俾:더할 비
-비:篚:
 비:祕:귀신 비, 비밀 비
 비:閟:문 닫을 비
 비:霏:눈 펄펄 내릴 비
 비:轡:고삐 비
-비:畀:
 비:圮:무너질 비
 비:沘:강 이름 비
-비:疪:
-비:禆:
 비:騑:곁마 비
 비:羆:큰 곰 비
-비:庀:
 비:髀:넓적다리 비
-비:痱:
 비:棐:도지개 비
 비:睥:흘겨볼 비
 비:痞:뱃속 결릴 비
 비:鼙:마상북 비
-비:裶:
 비:邳:클 비
 비:紕:가선 비
 비:貔:비휴 비
 비:庳:
 비:陴:성가퀴 비
 비:仳:떠날 비
-비:啚:
-비:媲:
-비:鞞:
 비:芘:풀 이름 비
-비:伾:
 비:淝:강 이름 비
 비:篦:빗치개 비
-비:奰:
-비:秠:
 비:芾:작은 모양 비
 비:濞:물 소리 비
 비:蚍:왕개미 비
-비:柲:
-비:糒:
-비:豼:
 비:狒:비비 비
-비:䀝:
 비:剕:발 벨 비
 비:埤:더할 비
 비:萆:비해 비
+비:鞴:풀무 비
+비:鵯:
+비:痹:저릴 비
+비:屁:방귀 비
+비:淠:강 이름 비
+비:狉:삵의 새끼 비
+비:蓖:아주까리 비
+비:郫:고을 이름 비
+비:騛:빠른 말 비
+비:篚:
+비:畀:
+비:疪:
+비:禆:
+비:庀:
+비:痱:
+비:裶:
+비:啚:
+비:媲:
+비:鞞:
+비:伾:
+비:奰:
+비:秠:
+비:柲:
+비:糒:
+비:豼:
+비:䀝:
 비:嚭:
 비:渄:
 비:蠯:
 비:䚹:
-비:鞴:풀무 비
-비:鵯:
 비:俻:
 비:偹:
 비:厞:
 비:馡:
 비:㩌:
 비:䤵:
-비:痹:저릴 비
 비:备:
 비:惫:
 비:纰:
 비:镄:
 비:飞:
 비:鲱:
-비:屁:방귀 비
-비:淠:강 이름 비
-비:狉:삵의 새끼 비
-비:蓖:아주까리 비
-비:郫:고을 이름 비
-비:騛:빠른 말 비
 비:俷:
 비:僃:
 비:呸:
 빈:顰:찡그릴 빈
 빈:繽:어지러울 빈
 빈:豳:나라 이름 빈
-빈:賔:
 빈:霦:옥 광채 빈
 빈:鑌:강철 빈
+빈:鬂:鬢의 俗字
+빈:矉:찡그릴 빈
+빈:臏:종지뼈 빈
+빈:賔:
 빈:䎙:
 빈:份:
 빈:馪:
 빈:璸:
 빈:髩:
-빈:鬂:鬢의 俗字
 빈:薲:
 빈:蠙:
 빈:濵:
-빈:矉:찡그릴 빈
-빈:臏:종지뼈 빈
 빈:梹:
 빈:傧:
 빈:嫔:
 빙:冰:氷의 本字
 빙:凭:기대다 빙
 빙:娉:장가들다 빙
+빙:凴:凭과 同字
 빙:俜:
 빙:砯:
 빙:䀻:
 빙:骋:
-빙:凴:凭과 同字
 빙:仌:
 빙:冫:얼음
 빙:慿:
 사:柶:수저 사, 숟가락 사
 사:渣:찌끼 사
 사:僿:잘게 부슬 사, 정성없는 사
-사:辞:
 사:槎:
 사:竢:기다릴 사
 사:蜡:납향 사
 사:笥:상자 사
 사:榭:정자 사
 사:騃:
+사:姒:동서 사
+사:卸:풀 사
+사:闍:
+사:撕:
+사:楂:떼 사
+사:駛:달릴 사
+사:缷:
+사:剚:찌를 사
+사:咋:잠간 사
+사:汜:지류 사
+사:傞:취하여 춤추는 모양 사
+사:覗:엿볼 사
+사:鯊:문절망둑 사
+사:崽:
+사:痧:쥐통 사
+사:皶:
+사:魦:鯊와 同字
+사:鰤:새우 사
+사:辞:
 사:查:
 사:賖:
-사:姒:동서 사
 사:涘:
 사:耜:
-사:卸:풀 사
 사:蓰:
 사:屣:
 사:冩:
-사:闍:
 사:簁:
-사:撕:
 사:賒:
-사:楂:떼 사
 사:挲:
-사:駛:달릴 사
-사:缷:
 사:辤:
 사:禠:
 사:舎:
-사:剚:찌를 사
-사:咋:잠간 사
 사:虵:
-사:汜:지류 사
 사:辝:
 사:髿:
-사:傞:취하여 춤추는 모양 사
 사:禩:
 사:肂:
 사:衺:
 사:嗄:
 사:漇:
 사:蹝:
-사:覗:엿볼 사
-사:鯊:문절망둑 사
 사:戺:
 사:柌:
 사:蒒:
 사:鲨:
 사:鸶:
 사:䴓:
-사:崽:
-사:痧:쥐통 사
-사:皶:
-사:魦:鯊와 同字
-사:鰤:새우 사
 사:亊:
 사:亖:
 사:佀:
 삭:鑠:녹일 삭
 삭:槊:창 삭
 삭:爍:빛날 삭
+삭:箾:
+삭:蒴:말오줌대 삭
 삭:矟:
 삭:搠:
-삭:箾:
 삭:烁:
 삭:铄:
-삭:蒴:말오줌대 삭
 삭:嗍:
 삭:揱:
 삭:溹:
 산:霰:싸라기눈 산, 싸락눈 산
 산:蒜:달래 산
 산:汕:오구 산, 통발 산
-산:產:
-산:筭:
 산:繖:일산 산
 산:訕:헐뜯을 산
-산:删:
 산:餕:
-산:㪚:
-산:跚:
 산:潸:눈물흐를 산
 산:毿:
 산:狻:사자 산
 산:鏟:대패 산
-산:滻:
 산:澘:潸의 略字
 산:剷:깎을 산
-산:㦃:
 산:橵:산자 산
+산:姍:헐뜯을 산
+산:孿:쌍둥이 산
+산:閊:비색할 산
+산:產:
+산:筭:
+산:删:
+산:㪚:
+산:跚:
+산:滻:
+산:㦃:
 산:仐:
 산:痠:
 산:隡:
 산:讪:
 산:闩:
 산:馓:
-산:姍:헐뜯을 산
-산:孿:쌍둥이 산
-산:閊:비색할 산
 산:匴:
 산:厁:
 산:圸:
 삼:摻:
 삼:毿:털긴 삼
 삼:糝:나물죽 삼
-삼:彡:터럭
 삼:鬖:헝클어질 삼
+삼:椙:
+삼:櫼:
+삼:釤:낫 삼
+삼:彡:터럭
 삼:縿:
 삼:槮:
 삼:襂:
 삼:穼:
 삼:糁:
 삼:钐:
-삼:椙:
-삼:櫼:
-삼:釤:낫 삼
 삼:仨:
 삼:俕:
 삼:剼:
 삽:鍤:가래 삽
 삽:卅:서른 삽
 삽:霎:가랑비 삽
+삽:霅:비올 삽
+삽:唼:쪼아먹을 삽
 삽:挿:
 삽:澀:
 삽:鎝:
 삽:插:
-삽:霅:비올 삽
 삽:牐:
 삽:箑:
-삽:唼:쪼아먹을 삽
 삽:靸:
 삽:趿:
 삽:涩:
 상:嫦:
 상:瀧:
 상:峠:고개 상
-상:状:
-상:尚:
 상:倘:
 상:甞:맛볼 상
 상:殤:일찍죽을 상
+상:顙:이마 상
+상:徜:노닐 상
+상:緗:담황색 상
+상:晌:정오 상
+상:塽:높고밝은땅 상
+상:鎟:방울소리 상
+상:鬺:삶을 상
+상:状:
+상:尚:
 상:愓:
 상:恦:
 상:垧:
 상:厢:
 상:瑺:
 상:礵:
-상:顙:이마 상
 상:丧:
-상:徜:노닐 상
-상:緗:담황색 상
 상:鋿:
 상:鏛:
 상:扄:
-상:晌:정오 상
 상:謪:
 상:鸘:
 상:䘮:
 상:鱨:
-상:塽:높고밝은땅 상
 상:樉:
 상:贘:
 상:驦:
 상:骦:
 상:鲿:
 상:鹴:
-상:鎟:방울소리 상
-상:鬺:삶을 상
 상:丄:
 상:仩:
 상:傸:
 새:塞:변방 새, 변망 새
 새:璽:도장 새, 옥새 새
 새:賽:굿할 새, 국할 새
-새:壐:
 새:鰓:뿔심 새
+새:崽:
+새:壐:
 새:玺:
 새:赛:
 새:鳃:
-새:崽:
 새:噻:
 새:愢:
 새:瓕:
 색:薔:아낄 색
 색:穡:거둘 색
 색:愬:놀랍고두려울 색
-색:賾:
-색:摵:
 색:槭:나뭇잎 떨어져 앙상할 색
 색:濇:껄끄러울 색
+색:瀒:濇의 俗字
+색:賾:
+색:摵:
 색:矠:
 색:繬:
 색:鎍:
 색:穑:
 색:赜:
 색:铯:
-색:瀒:濇의 俗字
 색:嗦:
 색:懎:
 색:擌:
 생:甥:생질 생, 사위 생
 생:笙:생황 생
 생:眚:눈에백태낄 생
+생:鉎:녹 생
 생:泩:
 생:栍:
 생:鼪:
-생:鉎:녹 생
 생:殅:
 생:湦:
 생:珄:
 서:薯:참마 서, 감자 서
 서:嶼:섬 서
 서:抒:풀 서, 끄어낼 서
-서:婿:사위 서
 서:壻:사위 서
 서:栖:깃들일 서, 깃드릴 서
 서:筮:점대 서, 산가지 서
 서:絮:솜 서, 헌솜 서
 서:墅:농막 서
 서:捿:깃들일 서, 깃드릴 서
+서:婿:사위 서
 서:叙:
 서:紓:느슨할 서
 서:噬:씹을 서
+서:撕:
+서:鉏:호미 서
+서:湑:거를 서
+서:澨:물가 서
+서:芧:상수리 서
+서:揟:나무이름 서
+서:耡:구실이름 서
 서:敘:
 서:遾:
 서:閪:
 서:溆:
-서:撕:
-서:鉏:호미 서
 서:醑:
 서:諝:
 서:蜍:
-서:湑:거를 서
-서:澨:물가 서
-서:芧:상수리 서
 서:㥠:
 서:漵:
 서:潻:
 서:绪:
 서:谞:
 서:锄:
-서:揟:나무이름 서
-서:耡:구실이름 서
 서:卥:
 서:唑:
 서:嫬:
 석:蓆:자리 석, 클 석
 석:腊:포 석
 석:舃:신 석
+석:蜥:도마뱀 석
+석:鉐:놋쇠 석
+석:晰:밝을 석
+석:矽:석비레 석
+석:鼫:석서 석
 석:释:
 석:穸:
 석:螫:
 석:祏:
-석:蜥:도마뱀 석
-석:鉐:놋쇠 석
-석:晰:밝을 석
 석:裼:
 석:焬:
 석:皙:
 석:硕:
 석:釈:
 석:锡:
-석:矽:석비레 석
-석:鼫:석서 석
 석:佦:
 석:冟:
 석:匇:
 선:敾:글잘쓸 선
 선:湺:
 선:尠:적을 선
-선:縇:
 선:燹:
-선:鲜:
-선:缮:
-선:墠:
 선:譔:가르칠 선
 선:綫:線과 同字
-선:獮:
 선:鏇:갈이틀 선
-선:躚:
 선:騸:불깔 선
 선:愃:쾌할 선
-선:僎:
-선:蟺:
 선:墡:백토 선
-선:嬗:
 선:筅:솔 선
 선:脧:
 선:駪:
 선:熯:
+선:鱻:생선 선
+선:姍:
+선:姺:
+선:嫙:예쁠 선
+선:尟:尠과 同字
+선:屳:날 선
+선:歚:고을 선
+선:譱:善의 古字
+선:鱓:두렁허리 선
+선:縇:
+선:鲜:
+선:缮:
+선:墠:
+선:獮:
+선:躚:
+선:僎:
+선:蟺:
+선:嬗:
 선:揎:
 선:蟮:
 선:襈:
 선:㶍:
 선:㷽:
 선:䆄:
-선:鱻:생선 선
 선:僐:
 선:漩:
 선:舩:
 선:镟:
 선:骟:
 선:鳝:
-선:姍:
-선:姺:
-선:嫙:예쁠 선
-선:尟:尠과 同字
-선:屳:날 선
-선:歚:고을 선
-선:譱:善의 古字
-선:鱓:두렁허리 선
 선:傓:
 선:僲:
 선:塇:
 설:褻:더러울 설, 평복 설
 설:楔:문설주 설, 기둥 설
 설:齧:물 설, 씹을 설
-설:挈:
 설:偰:맑을 설
 설:揲:셀 설
-설:絏:
 설:爇:불사를 설
 설:紲:고삐 설
 설:稧:
+설:媟:깔볼 설
+설:碟:가죽다룰 설
+설:暬:설만할 설
+설:挈:
+설:絏:
 설:䙝:
 설:枻:
-설:媟:깔볼 설
 설:囓:
-설:碟:가죽다룰 설
 설:焫:
 설:躠:
 설:緤:
-설:暬:설만할 설
 설:褉:
 설:樰:
 설:㻡:
 섬:憸:간사할 섬
 섬:摻:섬섬할 섬
 섬:銛:가래 섬
-섬:殱:
-섬:爓:
 섬:譫:헛소리 섬
 섬:睒:번개빛 섬
+섬:韱:산부추 섬
+섬:孅:가늘 섬
+섬:笘:
+섬:殱:
+섬:爓:
 섬:纎:
 섬:棎:
-섬:韱:산부추 섬
 섬:掞:
 섬:㴸:
 섬:䃸:
 섬:赡:
 섬:铦:
 섬:闪:
-섬:孅:가늘 섬
-섬:笘:
 섬:嬐:
 섬:撡:
 섬:攕:
 섭:躡:밟을 섭, 신 신을 섭, 오를 섭
 섭:懾:무서울 섭, 두려울 섭
 섭:歙:
-섭:爕:
-섭:摂:
 섭:囁:말하려다 멈출 섭, 중얼거릴 섭, 입 다물 섭
-섭:讋:
 섭:聶:소곤거릴 섭, 낄 섭, 성씨 섭
 섭:鑷:쪽집게 섭
+섭:灄:흠치르르할 섭, 물이름 섭, 떼 섭
+섭:顳:귀밑 뼈 섭
+섭:爕:
+섭:摂:
+섭:讋:
 섭:屧:
 섭:籋:
 섭:渉:
 섭:蹑:
 섭:镊:
 섭:颞:
-섭:灄:흠치르르할 섭, 물이름 섭, 떼 섭
-섭:顳:귀밑 뼈 섭
 섭:屟:
 섭:弽:
 섭:徢:
 성:珹:옥이름
 성:猩:성성이 성
 성:筬:바디 성, 대나무이름 성
+성:騂:붉은 소 성, 누른말 성, 활 물쩡물쩡할 성
+성:餳:
+성:瑆:
 성:渻:
 성:垶:
-성:騂:붉은 소 성, 누른말 성, 활 물쩡물쩡할 성
 성:峸:
 성:狌:
 성:晠:
 성:煋:
 성:郕:
-성:餳:
 성:鋮:
 성:偗:
 성:箵:
 성:诚:
 성:铖:
 성:骍:
-성:瑆:
 성:墭:
 성:娍:
 성:曐:
 세:貰:빌릴 세, 세 바칠 세, 세낼 세
 세:笹:가는 대 세
 세:洒:씻을 세, 설치할 세
-세:税:
-세:嵗:
-세:歳:
 세:繐:가늘고 성긴 베 세
 세:蛻:매미 허물 세
 세:帨:차는 수건 세, 손수건 세
+세:税:
+세:嵗:
+세:歳:
 세:挩:
 세:裞:
 세:檅:
 소:溯:거슬러 올라갈 소
 소:釗:
 소:篠:가는 대 소, 조릿대 소
-소:䟽:
-소:㪽:
 소:踈:疎의 譌字
 소:艘:배 소
 소:霄:하늘 소, 진눈깨비 소
-소:咲:
 소:泝:거슬러 올라갈 소, 흘러갈 소
-소:穌:
-소:焇:
 소:埽:쓸 소, 그릴 소, 언덕 소
 소:翛:날개치는 소리 소, 모지라질 소
 소:愬:고할 소, 참소할 소, 알릴 소
 소:鞘:
+소:酥:타락죽 소
+소:繅:고치 실 뽑을 소
+소:卲:높을 소, 성씨 소
+소:劭:
+소:蛸:거미알 소, 연가시 알집 소
+소:俏:거문고 뒤치는 소리 소
+소:捎:덜 소, 흔들거릴 소, 추릴 소, 버릴 소
+소:魈:산도깨비 소
+소:佋:소개할 소, 사신 소, 댓수의 차례 소
+소:箾:
+소:嗉:멀떠구니 소
+소:筱:가는 대 소
+소:塐:塑와 同字
+소:樔:풀막 소, 너스레 소
+소:膆:살찔 소, 멀떠구니 소
+소:鮹:문어 소, 낙지 소
+소:鰺:비린내 소의 譌字
+소:䟽:
+소:㪽:
+소:咲:
+소:穌:
+소:焇:
 소:焼:
 소:销:
 소:熽:
 소:筲:
-소:酥:타락죽 소
-소:繅:고치 실 뽑을 소
-소:卲:높을 소, 성씨 소
 소:謏:
 소:蠨:
-소:劭:
-소:蛸:거미알 소, 연가시 알집 소
 소:傃:
 소:㴑:
-소:俏:거문고 뒤치는 소리 소
 소:玿:
-소:捎:덜 소, 흔들거릴 소, 추릴 소, 버릴 소
-소:魈:산도깨비 소
 소:痟:
 소:矂:
-소:佋:소개할 소, 사신 소, 댓수의 차례 소
-소:箾:
 소:喿:
 소:璅:
 소:騒:
 소:㗛:
-소:嗉:멀떠구니 소
 소:愫:
 소:慅:
 소:旓:
 소:溸:
 소:琑:
 소:苏:
-소:筱:가는 대 소
 소:关:
 소:啸:
 소:巣:
 소:骚:
 소:鲹:
 소:鳋:
-소:塐:塑와 同字
-소:樔:풀막 소, 너스레 소
-소:膆:살찔 소, 멀떠구니 소
-소:鮹:문어 소, 낙지 소
-소:鰺:비린내 소의 譌字
 소:嘨:
 소:囌:
 소:娋:
 속:贖:속바칠 속, 무역할 속
 속:涑:빨
 속:謖:일어날
+속:洬:
+속:遬:공손할 속, 줄어들 속
 속:属:
 속:蔌:
 속:餗:
 속:觫:
-속:洬:
 속:鋉:
-속:遬:공손할 속, 줄어들 속
 속:梀:
 속:誎:
 속:簌:
 손:蓀:난초
 손:飧:저녁밥 손, 물에 만 밥 손
 손:飱:飧의 俗字
-손:噀:
 손:喰:
+손:噀:
 손:孙:
 손:损:
 손:狲:
 손호:孫皓:
 손화로:손火爐:
 솔:率:거느릴 솔, 좇을 솔, 쓸 솔, 대강 솔, 공경할 솔, 뱀 이름 솔, 헤아릴 솔
-솔:卛:
 솔:蟀:귀뚜라미 솔
 솔:窣:느릿느릿 걸을 솔, 우지직거릴 솔, 구멍으로 나올 솔
+솔:卛:
 솔:乺:
 솔:摔:
 솔:甩:
 송:宋:송나라 송, 성씨 송
 송:悚:두려울 송, 송구할 송, 두려워할 송
 송:淞:강이름 송
-송:荣:
 송:竦:공경할 송, 두려울 송, 높일 송, 솟을 송
 송:柗:松과 同字
 송:鬆:터럭 더부룩할 송
+송:菘:
+송:荣:
 송:㩳:
 송:㞞:
 송:讼:
 송:诵:
 송:锶:
 송:颂:
-송:菘:
 송:倯:
 송:凇:
 송:庺:
 쇄:碎:부술 쇄, 잘 쇄
 쇄:洒:
 쇄:瑣:옥가루 쇄, 가늘 쇄, 좀스러울 쇄, 대궐문 아로새길 쇄
+쇄:曬:
+쇄:惢:
 쇄:晒:
 쇄:鎻:
-쇄:曬:
 쇄:鏁:
 쇄:锁:
 쇄:縰:
 쇄:唢:
 쇄:琐:
 쇄:铩:
-쇄:惢:
 쇄:嗮:
 쇄:涮:
 쇄:溑:
 수:璲:서옥 수, 패옥 수
 수:蓚:기쁠
 수:銹:동록 수, 녹슬 수
-수:随:
-수:収:
-수:数:
 수:叟:어른 수, 쌀 씻는 소리 수
 수:讎:짝 수, 원수 수, 대거리할 수, 비교할 수, 갚을 수
 수:售:팔 수, 갚을 수
 수:晬:
 수:睟:똑바로 볼 수, 윤택할 수
 수:陲:변방 수, 위태할 수
-수:捜:
 수:睢:
 수:祟:빌미 수
-수:薮:
-수:虽:
 수:莠:
 수:瞍:소경 수, 장님 수, 판수 수
-수:髄:
 수:颼:바람소리 수
-수:綉:
 수:殳:치다
-수:襚:
 수:酥:
+수:廋:숨길 수
+수:溲:오줌 수, 반족할 수, 적실 수
+수:膄:파리할 수
+수:脺:얼굴 윤택할 수, 머리덜미 수
+수:泅:
+수:濉:
+수:籔:조리 수, 곡식 세는 단위 휘 수, 또아리 수
+수:膸:髓와 同字
+수:饈:드릴 수, 반찬 수
+수:随:
+수:収:
+수:数:
+수:捜:
+수:薮:
+수:虽:
+수:髄:
+수:綉:
+수:襚:
 수:瀡:
 수:倕:
 수:滫:
 수:䢘:
-수:廋:숨길 수
-수:溲:오줌 수, 반족할 수, 적실 수
 수:詶:
 수:繻:
 수:鎪:
 수:篲:
 수:酧:
 수:䏂:
-수:膄:파리할 수
 수:惥:
 수:擻:
 수:橾:
 수:菙:
 수:訹:
 수:醻:
-수:脺:얼굴 윤택할 수, 머리덜미 수
 수:扌:
 수:檖:
 수:腄:
 수:㒸:
 수:䆳:
-수:泅:
 수:夀:
 수:栦:
 수:澻:
 수:魗:
 수:䇕:
 수:䝂:
-수:濉:
-수:籔:조리 수, 곡식 세는 단위 휘 수, 또아리 수
-수:膸:髓와 同字
 수:嬃:
 수:嬦:
 수:嶲:
 수:馊:
 수:馐:
 수:䍁:
-수:饈:드릴 수, 반찬 수
 수:俢:
 수:傁:
 수:凁:
 수용토:受用土:
 수용품:需用品:
 수우:水牛:
+수우:愁憂:
 수우:殊遇:
 수우:秀羽:
 수우:樹羽:
 수우:殊尤:
-수우:愁憂:
 수우도:樹牛島:
 수우도:水牛島:
 수우죽백:垂于竹帛:
 숙:璹:옥그릇
 숙:潚:빠를
 숙:琡:옥이름
-숙:䎘:
-숙:璛:
 숙:倏:잠간 숙, 홀연 숙, 개의 빨리 달리는 모양 숙
 숙:俶:비롯할 숙, 처음 숙, 지을 숙
-숙:埱:
 숙:橚:길고 꼿꼿할 숙
+숙:儵:잿빛 숙, 남해 임금 숙, 독화당할 숙, 갑자기 숙
+숙:鷫:숙상새 숙
+숙:驌:좋은말 숙, 숙상말 숙
+숙:婌:궁녀 벼슬이름 숙
+숙:䎘:
+숙:璛:
+숙:埱:
 숙:蓿:
 숙:倐:
 숙:焂:
 숙:鱐:
-숙:儵:잿빛 숙, 남해 임금 숙, 독화당할 숙, 갑자기 숙
-숙:鷫:숙상새 숙
 숙:玊:
-숙:驌:좋은말 숙, 숙상말 숙
 숙:掓:
 숙:㶖:
 숙:䃤:
 숙:肃:
 숙:骕:
 숙:鹔:
-숙:婌:궁녀 벼슬이름 숙
 숙:儴:
 숙:尗:
 숙:摍:
 순:蕣:무궁화 순
 순:栒:경쇠걸이 순, 순나무 순
 순:橓:무궁화나무 순
-순:笋:
 순:肫:광대뼈 순, 정성스러울 순
 순:鶉:메추라기 순, 옷 해질 순
-순:峋:
-순:廵:
-순:輴:
 순:紃:신에 실선 두를 순, 실 띠 순, 법 순, 좇을 순
-순:漘:
-순:㥧:
 순:狥:徇의 俗字
 순:鬊:머리 풀어헤칠 순
 순:眴:눈짓할 순
 순:侚:좇을 순, 빠를 순, 조리 돌릴 순
+순:盹:눈 감을 순, 졸 순
+순:駨:
+순:笋:
+순:峋:
+순:廵:
+순:輴:
+순:漘:
+순:㥧:
 순:㦏:
 순:䋸:
 순:䥎:
 순:驯:
 순:鹑:
 순:鹠:
-순:盹:눈 감을 순, 졸 순
-순:駨:
 순:伨:
 순:偱:
 순:咰:
 술:術:재주 술, 심술부릴 술, 술법 술
 술:鉥:돗바늘 술, 인도할 술, 큰바늘 술
 술:卹:
+술:潏:
+술:絉:
 술:銊:
 술:㺷:
-술:潏:
 술:荗:
 술:珬:
 술:沭:
-술:絉:
 술:欰:
 술:蒁:
 술:袕:
 슬:膝:무릎 슬, 종지뼈 슬, 치슬말 슬
 슬:蝨:이 슬
 슬:虱:蝨과 同字
+슬:飋:
 슬:㻭:
 슬:厀:
 슬:鲺:
-슬:飋:
 슬:濏:
 슬:璱:
 슬:鯴:
 습:襲:옷 덧입을 습, 벼슬 대물릴 습, 반복할 습, 합할 습, 염습할 습, 엄습할 습
 습:濕:젖을 습, 소 귀 벌룩거릴 습, 근심 습
 습:褶:슬갑 습
-습:湿:
 습:隰:진펄 습
 습:慴:
 습:熠:환할 습, 선명할 습, 반딧불 반짝거릴 습
+습:湿:
 습:霫:
 습:謵:
 습:习:
 승:丞:이을 승, 도울 승, 벼슬의 이름 승, 향상할 승
 승:陞:오를 승, 올릴 승
 승:蠅:파리 승
+승:塍:
+승:鬙:터럭 더부룩할 승
 승:乗:
 승:蝇:
-승:塍:
 승:䋲:
-승:鬙:터럭 더부룩할 승
 승:鱦:
 승:椉:
 승:氶:
 시:澌:물 잦을 시, 다할 시
 시:廝:부릴 시, 천할 시, 마부 시
 시:柹:감 시
-시:絁:
 시:偲:간절히 책망할 시, 살피고 힘쓸 시, 굳셀 시
 시:禔:복 시, 편안할 시
 시:撕:
-시:腮:
-시:颸:
 시:諟:이 시, 살필 시, 다스릴 시
 시:兕:외뿔난 소 시
-시:弒:
 시:豉:메주 시, 콩자반 시
-시:䌤:
 시:塒:홰 시
 시:顋:뺨 시, 볼 시
-시:眎:
-시:鳲:
 시:枲:수삼 시, 도꼬마리 시
 시:諰:눈 휘둥글할 시, 곧은말 시
+시:釃:술 거를 시
+시:翤:
+시:鍉:숟가락 시, 열쇠 시
+시:絁:
+시:腮:
+시:颸:
+시:弒:
+시:䌤:
+시:眎:
+시:鳲:
 시:凘:
 시:翨:
 시:䲭:
 시:毸:
 시:漦:
 시:襹:
-시:釃:술 거를 시
 시:揌:
 시:犲:
 시:褷:
 시:飔:
 시:鲥:
 시:鸤:
-시:翤:
-시:鍉:숟가락 시, 열쇠 시
 시:兘:
 시:呞:
 시:咶:
 식:埴:찰진흙 식, 흙 이길 식, 더듬어 걸을 식
 식:篒:대밥통
 식:栻:점판 식
-식:鉽:
-식:烒:
 식:喰:
 식:媳:며느리 식
+식:鉽:
+식:烒:
 식:蚀:
 식:轼:
 식:饣:
 신:矧:하물며 신, 잇속 드러날 신
 신:贐:노자 신, 노수 신
 신:哂:빙그레 웃을 신, 비웃을 신
-신:慎:
 신:汛:물뿌릴 신
 신:頣:눈들고 볼 신
 신:脤:사직제 지낸 고기 신
+신:駪:말 우물거릴 신, 빨리 걸을 신
+신:噺:이야기 신
+신:囟:숨구멍 신, 정수리 신
+신:姺:나라이름 신
+신:慎:
 신:抻:
 신:賮:
 신:兟:
 신:伩:
 신:柛:
-신:駪:말 우물거릴 신, 빨리 걸을 신
 신:璶:
 신:㾕:
 신:峷:
 신:讯:
 신:识:
 신:赆:
-신:噺:이야기 신
-신:囟:숨구멍 신, 정수리 신
-신:姺:나라이름 신
 신:卂:
 신:吲:
 신:妽:
 실:實:열매 실
 실:悉:모두 실, 알 실
 실:蟋:귀뚜라미 실
+실:飋:
 실:窸:
 실:实:
 실:実:
-실:飋:
 실:怸:
 실:榁:
 실:螅:
 심:沁:스며들 심, 물이름 심
 심:諶:참 심, 믿을 심
 심:芯:등심초 심
-심:淰:
 심:沉:沈과 同字
 심:潯:물가 심
+심:梣:
+심:椹:
+심:燖:삶을 심
+심:葚:뽕나무 열매 심
+심:鐔:칼날 아래 코등이 심
+심:鱏:칼철갑상어 심
+심:淰:
 심:愖:
 심:諗:
 심:杺:
-심:梣:
 심:伈:
 심:蕈:
 심:㴱:
-심:椹:
-심:燖:삶을 심
 심:襑:
 심:㝷:
-심:葚:뽕나무 열매 심
 심:宷:
 심:枔:
 심:鬵:
 심:镡:
 심:鲟:
 심:㖊:
-심:鐔:칼날 아래 코등이 심
-심:鱏:칼철갑상어 심
 심:侺:
 심:吢:
 심:噚:
 아:鵝:거위 아
 아:莪:지칭개 아, 새발쑥 아
 아:蛾:누에나방 아, 누에나비 아
-아:痾:
 아:迓:마중할 아
 아:疴:앓을 아
 아:哦:놀람의 어조사 아
-아:児:
-아:婭:
-아:亜:
 아:婀:娿와 同字
 아:丫:가장귀 아
 아:峩:峨와 同字
-아:椏:
-아:稏:
 아:娿:아리따울 아
 아:砑:갈 아
+아:笌:대싹 아
+아:錏:투구의 목가림 아
+아:鵞:鵝와 同字
+아:痾:
+아:児:
+아:婭:
+아:亜:
+아:椏:
+아:稏:
 아:妸:
 아:鵶:
 아:俹:
 아:鸦:
 아:鹅:
 아:䅉:
-아:笌:대싹 아
-아:錏:투구의 목가림 아
-아:鵞:鵝와 同字
 아:伢:
 아:厊:
 아:吖:
 악:鄂:나라이름 악, 고을이름 악
 악:鍔:칼날끝 악
 악:齷:악착할 악, 악착같을 악
-악:楽:
 악:萼:꽃받침 악
 악:諤:직언할 악
 악:鶚:물수리 악
 악:咢:놀랄 악
 악:喔:닭 우는 소리 악, 아첨해 웃는 소리 악
-악:鸑:
 악:噩:놀랄 악
+악:卾:윗턱 악
+악:腭:잇몸 악
+악:偓:거리낄 악
+악:覨:오래 볼 악
+악:齶:잇몸 악
+악:楽:
+악:鸑:
 악:遌:
 악:崿:
 악:蕚:
 악:㮙:
-악:卾:윗턱 악
 악:堮:
 악:恶:
 악:鳄:
-악:腭:잇몸 악
 악:乐:
 악:垩:
 악:悪:
 악:颚:
 악:鹗:
 악:龌:
-악:偓:거리낄 악
-악:覨:오래 볼 악
-악:齶:잇몸 악
 악:偔:
 악:僫:
 악:捳:
 안:按:살필 안, 어루만질 안
 안:晏:늦을 안, 편안할 안
 안:鮟:아귀 안, 천징어 안
-안:顏:
 안:鴈:기러기 안
-안:鷃:
-안:贗:
 안:犴:들개 안
 안:贋:가짜 안
 안:桉:案과 同字
+안:顏:
+안:鷃:
+안:贗:
 안:䬶:
 안:楌:
 안:㷳:
 알:斡:돌릴 알, 주선할 알
 알:遏:막을 알
 알:訐:들추어 낼 알
-알:戛:
 알:戞:창 알
 알:頞:콧마루 알
+알:揠:뽑을 알
+알:鴶:뻐꾸기 알
+알:嘎:새소리 알
+알:穵:구멍 알
+알:戛:
 알:歹:부서진뼈
 알:嶭:
-알:揠:뽑을 알
 알:猰:
 알:圠:
 알:捾:
-알:鴶:뻐꾸기 알
 알:堨:
 알:钀:
 알:䵝:
 알:谒:
 알:轧:
 알:阏:
-알:嘎:새소리 알
-알:穵:구멍 알
 알:劜:
 알:咹:
 알:嘠:
 암:俺:
 암:唵:머금을
 암:諳:욀 암
-암:嵒:
 암:黯:어두울 암
 암:嵓:바위 암, 가파를 암
 암:頷:
 암:馣:향기로울 암
 암:晻:어두울 암
-암:碞:
 암:媕:머뭇거릴 암
+암:啽:잠꼬대 암
+암:腤:고기 삶을 암
+암:葊:풀이름 암
+암:蓭:암자 암
+암:嵒:
+암:碞:
 암:韽:
 암:揞:
 암:黭:
-암:啽:잠꼬대 암
 암:痷:
 암:萻:
 암:鵪:
 암:谙:
 암:颔:
 암:鹌:
-암:腤:고기 삶을 암
-암:葊:풀이름 암
-암:蓭:암자 암
 암:匼:
 암:啱:
 암:堷:
 압:鴨:오리 압, 집오리 압
 압:岬:
 압:狎:친근할 압, 업신여길 압, 익힐 압
-압:鸭:
-압:庒:
 압:礏:
 압:罨:
+압:鸭:
+압:庒:
 압:岋:
 압:姶:
 압:㔩:
 앙:昻:오를 앙, 밝을 앙
 앙:鴦:암원앙새 앙
 앙:秧:모 앙
-앙:昂:밝을,높을
 앙:盎:동이 앙
 앙:鞅:가슴걸이 앙, 소고삐 앙
 앙:泱:끝없을 앙
 앙:卬:자기 앙
 앙:坱:티끌 앙
+앙:昂:밝을,높을
 앙:枊:
 앙:䭹:
 앙:抰:
 애:藹:화기로울 애
 애:欸:한숨쉴 애
 애:騃:어리석을 애, 말달릴 애
-애:瑷:
-애:敱:
-애:爱:
 애:睚:눈흘길 애
 애:皚:흴 애
 애:瞹:흐릿할 애
 애:挨:밀칠 애
-애:閡:
-애:㝵:
 애:僾:어렴풋할 애
 애:薆:숨겨질 애
 애:靉:구름낄 애
 애:捱:막을 애
 애:獃:어리석을 애
-애:壒:
 애:磑:맷돌 애
-애:䔽:
 애:娭:계집종 애
-애:譪:
 애:唉:대답하는 소리 애
+애:啀:물어뜯을 애
+애:噯:트림할 애
+애:崕:崖와 同字
+애:漄:물가 애
+애:瑷:
+애:敱:
+애:爱:
+애:閡:
+애:㝵:
+애:壒:
+애:䔽:
+애:譪:
 애:呃:
 애:毐:
 애:璦:
 애:锿:
 애:阂:
 애:霭:
-애:啀:물어뜯을 애
-애:噯:트림할 애
-애:崕:崖와 同字
-애:漄:물가 애
 애:伌:
 애:叆:
 애:哎:
 액:扼:움켜쥘 액, 움겨질 액
 액:縊:목 맬 액
 액:掖:겨드랑이에 낄 액
-액:詻:
 액:阨:막힐 액
 액:搤:움켜쥘 액
 액:戹:좁을 액
+액:呝:울 액
+액:詻:
 액:軛:
 액:頟:
-액:呝:울 액
 액:缢:
 액:轭:
 액:额:
 앵:櫻:앵두나무 앵
 앵:鸚:앵무새 앵
 앵:罌:술병 앵
-앵:鸎:
 앵:嚶:새 소리 앵
-앵:甖:
 앵:鷪:꾀꼬리 앵
-앵:䴍:
 앵:罃:술병 앵
+앵:嫈:예쁠 앵
+앵:鸎:
+앵:甖:
+앵:䴍:
 앵:嘤:
 앵:桜:
 앵:樱:
 앵:罂:
 앵:莺:
 앵:鹦:
-앵:嫈:예쁠 앵
 앵:奣:
 앵:甇:
 앵:譻:
 약:蒻:구약나물 약, 부들속 약
 약:鑰:자물쇠 약
 약:籥:피리 약, 잠글 약
-약:瀹:
 약:禴:종묘의 여름제사 약
-약:礿:
 약:爚:스러질 약
 약:篛:죽순 약
-약:㵸:
 약:鰯:멸치 약, 정어리 약
+약:龠:피리 약
+약:鶸:댓닭 약, 투계 약
+약:瀹:
+약:礿:
+약:㵸:
 약:箬:
 약:箹:
 약:蘥:
 약:㿑:
 약:药:
-약:龠:피리 약
 약:哟:
 약:约:
 약:薬:
 약:跃:
-약:鶸:댓닭 약, 투계 약
 약:叒:
 약:喲:
 약:嵶:
 양:攘:물리칠 양, 빼앗을 양, 밀칠 양
 양:釀:술 빚을 양
 양:恙:근심 양
-양:癢:가려울 양
 양:禳:푸닥거리할 양, 기도할 양
 양:痒:가려울 양, 옴 양
 양:佯:거짓 양, 어정거릴 양, 속일 양
 양:瀁:물결 일렁일 양, 내이름 양
 양:敭:오를 양, 칭찬할 양
 양:煬:구울 양, 녹일 양
+양:癢:가려울 양
 양:驤:날뛰는 말 양
+양:漾:물결 출렁거릴 양
+양:颺:날릴 양, 높일 양
+양:徉:배회할 양
+양:鑲:거푸집 속 양
+양:瀼:이슬 많은 모양 양, 강이름 양
+양:烊:구울 양, 녹일 양
+양:眻:눈 아름다울 양
+양:蘘:양하 양
+양:輰:상여수레 양
 양:譲:
 양:様:
-양:漾:물결 출렁거릴 양
 양:㨾:
 양:样:
 양:昜:
-양:颺:날릴 양, 높일 양
-양:徉:배회할 양
 양:鍚:
 양:懹:
 양:勷:
 양:䑋:
 양:崵:
 양:㐮:
-양:鑲:거푸집 속 양
-양:瀼:이슬 많은 모양 양, 강이름 양
 양:纕:
 양:壌:
 양:饟:
 양:飏:
 양:馕:
 양:骧:
-양:烊:구울 양, 녹일 양
-양:眻:눈 아름다울 양
-양:蘘:양하 양
-양:輰:상여수레 양
 양:劷:
 양:勨:
 양:奍:
 어:瘀:어혈질 어
 어:馭:말 부릴 어
 어:齬:이 어긋날 어
-어:扵:
 어:圉:마부 어, 변방 어
 어:飫:먹기 싫을 어, 배부를 어
-어:蘓:
 어:敔:금할 어, 풍류그칠 어
 어:淤:앙금 어, 진흙 어
+어:茣:
+어:扵:
+어:蘓:
 어:峿:
 어:籞:
 어:菸:
 어:驭:
 어:鱼:
 어:龉:
-어:茣:
 어:仒:
 어:唹:
 어:棜:
 억:檍:참죽나무 억, 박달나무 억, 싸리나무 억
 억:薏:
 억:嶷:
-억:澺:
 억:繶:땋은 노 억
+억:澺:
 억:亿:
 억:忆:
 억:悥:
 언:諺:상말 언
 언:堰:방죽 언
 언:偃:자빠질 언, 누울 언
-언:彥:
 언:讞:죄 의논할 언
-언:琂:
-언:唁:
 언:嫣:생긋생긋 웃을 언
-언:漹:
-언:蔫:
 언:鄢:땅이름 언
 언:鼴:두더쥐 언, 소 같은 큰 쥐 언
 언:匽:숨길 언, 길 곁 언, 한데 뒷간 언
+언:鼹:鼴과 同字
+언:傿:鄢과 同字
+언:彥:
+언:琂:
+언:唁:
+언:漹:
+언:蔫:
 언:喭:
 언:蝘:
-언:鼹:鼴과 同字
 언:讠:
 언:谚:
 언:谳:
-언:傿:鄢과 同字
 언:嘕:
 언:墕:
 언:娮:
 얹음형:얹음形:
 얼:蘖:그루터기 얼, 싹 얼
 얼:孼:첩자식 얼, 요물 얼, 첩의자식 얼
+얼:臬:법 얼, 문지방 얼, 과녁 얼
 얼:孽:
 얼:糱:
-얼:臬:법 얼, 문지방 얼, 과녁 얼
 얼:乻:
 얼:臲:
 얼:闑:
 엄:儼:공경할 엄, 머리쳐들 엄
 엄:俺:자기 엄, 클 엄
 엄:淹:담글 엄, 오래머물 엄
-엄:渰:
 엄:广:바윗집 엄
-엄:揜:
 엄:閹:고자 엄, 내시 엄
 엄:晻:
 엄:崦:해 지는 산 이름 엄
 엄:弇:
 엄:罨:그물 엄
+엄:曮:해 다니는 길 엄
+엄:醃:절일 엄, 김치 엄
+엄:釅:
+엄:渰:
+엄:揜:
 엄:顩:
 엄:㤿:
 엄:㛪:
 엄:腌:
 엄:觃:
 엄:阉:
-엄:曮:해 다니는 길 엄
-엄:醃:절일 엄, 김치 엄
-엄:釅:
 엄:剦:
 엄:厈:
 엄:厳:
 엄흥섭:嚴興燮:
 업:業:일 업, 위태할 업, 씩씩할 업, 벌써 업, 공경할 업
 업:嶪:산이 높고 웅장할 업, 산높은모양 업
-업:业:
-업:㡤:
 업:鄴:땅이름 업, 성씨 업
 업:嶫:嶪과 同字
+업:业:
+업:㡤:
 업:澲:
 업:邺:
 업:殗:
 엎치락뒤치락경기:엎치락뒤치락競技:
 에:恚:성낼 에, 원망할 에
 에:曀:음산할 에, 가리울 에
-에:殪:
 에:饐:
+에:殪:
 에:㤬:
 에게문명:에게文明:
 에게문화:에게文化:
 여:璵:보배옥 여
 여:艅:나룻배 여, 나뭇배 여
 여:礖:여돌 여, 섞인돌 여
-여:与:
 여:舁:마주들 여
+여:与:
 여:欤:
 여:畬:
 여:洳:
 역:繹:삭일 역, 베풀 역, 실 끝 찾을 역
 역:轢:수레바퀴에 치일 력, 서로 부닥칠 력, 수레바퀴에 치는 역
 역:斁:
+역:嶧:연달아 있는 산 역
+역:懌:기꺼울 역
+역:鬩:
+역:閾:문지방 역
+역:淢:빨리 흐를 역
 역:埸:
 역:蜮:
 역:晹:
-역:嶧:연달아 있는 산 역
 역:㴒:
-역:懌:기꺼울 역
 역:湙:
 역:帟:
-역:鬩:
-역:閾:문지방 역
 역:棫:
 역:燡:
 역:睪:
 역:鶂:
-역:淢:빨리 흐를 역
 역:坄:
 역:歝:
 역:琙:
 연:挻:당길 연, 달아날 연, 손바닥으로 칠 연
 연:秊:年의 本字, 해 연
 연:縯:길 연, 늘일 연
-연:葕:
-연:研:
-연:兖:
 연:讌:잔치 연, 모여 말할 연
 연:臙:목구멍 연, 연지 연
 연:莚:만연할 연, 풀 이름 연
-연:缘:
-연:壖:
-연:蜒:
 연:吮:
 연:掾:아전 연, 기인할 연
 연:悁:분할 연, 근심할 연
 연:兗:고을이름 연, 믿을 연, 단정할 연
 연:埏:땅 가장자리 연
+연:渷:물 이름 연
+연:蠕:
+연:鷰:제비 연, 씨름 연
+연:嬿:아름다울 연
+연:囦:물 깊을 연
+연:曣:더울 연, 청명할 연
+연:櫞:연나무 연
+연:蜵:우렁찰 연, 벌레 이름 연
+연:葕:
+연:研:
+연:兖:
+연:缘:
+연:壖:
+연:蜒:
 연:輭:
 연:鈆:
 연:碝:
 연:㮒:
 연:愞:
 연:耎:
-연:渷:물 이름 연
 연:綖:
 연:鋋:
 연:妍:
 연:縁:
 연:㳂:
 연:肰:
-연:蠕:
-연:鷰:제비 연, 씨름 연
 연:蜎:
 연:蝝:
 연:㳙:
 연:撋:
-연:嬿:아름다울 연
 연:抁:
 연:灁:
 연:瑌:
 연:软:
 연:铅:
 연:鸢:
-연:囦:물 깊을 연
-연:曣:더울 연, 청명할 연
-연:櫞:연나무 연
-연:蜵:우렁찰 연, 벌레 이름 연
 연:剈:
 연:嘫:
 연:噮:
 열:閱:겪을 열, 군대 점호할 열, 용납할 열, 볼 열
 열:咽:목 멜 열, 막힐 열
 열:涅:극락갈
-열:揑:
 열:爇:
 열:噎:목 멜 열
 열:拽:
+열:揑:
 열:潱:
 열:閲:
 열:恱:
 염:錟:
 염:塩:鹽의 俗字
 염:冉:가는 털 늘어질 염, 남생이 등 언저리 염, 침노할 염
-염:燄:
 염:灎:灩의 俗字
 염:饜:싫을 염, 물릴 염
 염:魘:잠꼬대할 염
+염:灩:물 그득할 염, 물결 출렁거릴 염
+염:靨:
+염:黶:검은 사마귀 염
+염:扊:문 빗장 염
+염:檿:산뽕나무 염
+염:焱:
+염:懕:편안할 염
+염:檶:
+염:釅:
+염:燄:
 염:髯:
 염:曕:
 염:猒:
 염:㷔:
-염:灩:물 그득할 염, 물결 출렁거릴 염
-염:靨:
-염:黶:검은 사마귀 염
 염:袡:
 염:豔:
-염:扊:문 빗장 염
 염:灧:
-염:檿:산뽕나무 염
-염:焱:
 염:偣:
 염:冄:
 염:厴:
 염:魇:
 염:鲶:
 염:黡:
-염:懕:편안할 염
-염:檶:
-염:釅:
 염:乵:
 염:壛:
 염:夵:
 엽:揲:
 엽:楪:
 엽:魘:
-엽:饁:
 엽:爗:불 이글글할 엽, 번쩍번쩍할 엽
-엽:瞱:
 엽:熀:불빛 이글이글할 녑
 엽:靨:웃는 볼 옴쏙 들어갈 엽, 얼굴의 검은 사마귀 엽
+엽:曅:曄과 同字
+엽:饁:
+엽:瞱:
 엽:曗:
 엽:擛:
-엽:曅:曄과 同字
 엽:晔:
 엽:烨:
 엽:靥:
 영:玲:옥소리 쟁그렁거릴 령, 아롱아롱할 령, 정교할 령, 금옥소리 영
 영:囹:감옥 령
 영:暎:비칠 영
-영:嬰:어릴 영, 더할 영, 머리치장할 영, 물요괴 영, 갓난아이 영
 영:穎:이삭 영, 송곳 끝 영, 빼어날 영
 영:纓:갓끈 영, 말 가슴걸이 영, 얽힐 영
 영:瑩:귀막이 옥 영, 밝을 영
 영:煐:빛날 영
 영:瓔:옥돌 영, 구슬 목걸이 영
 영:鍈:방울소리 영
+영:嬰:어릴 영, 더할 영, 머리치장할 영, 물요괴 영, 갓난아이 영
 영:咏:노래할 영, 읊을 영
 영:贏:이문 남길 영, 멜 영, 자랄 영
 영:縈:얽힐 영, 맬 영
 영:嬴:성씨 영, 풀어낼 영, 가득할 영, 아름다울 영
-영:营:
 영:郢:땅이름 영
+영:癭:목 혹 영
+영:韺:풍류이름 영
+영:浧:잠길 영, 앙금 영
+영:濴:물 졸졸 흐를 영
+영:碤:물 속 돌 영
+영:蠑:도마뱀 영
+영:营:
 영:営:
 영:嵘:
 영:栐:
 영:禜:
 영:攖:
 영:頴:
-영:癭:목 혹 영
-영:韺:풍류이름 영
 영:灜:
 영:覮:
 영:籝:
 영:颍:
 영:颕:
 영:颖:
-영:浧:잠길 영, 앙금 영
-영:濴:물 졸졸 흐를 영
-영:碤:물 속 돌 영
-영:蠑:도마뱀 영
 영:嬫:
 영:孆:
 영:孾:
 예:裔:옷 뒷자락 예, 변방 예, 후손 예
 예:穢:더러울 예, 거칠 예
 예:洩:퍼질 예, 날개 훨훨칠 예
-예:隸:종 례, 노비 례, 검열할 례
 예:刈:풀 벨 예, 죽일 예
 예:乂:풀 벨 예, 다스릴 예
 예:倪:어릴 예, 도울 예, 끝 예
 예:汭:물 이름 예, 물 굽이 예
 예:蘂:蕊와 同字, 꽃술 예
 예:叡:밝을 예, 임금 예, 어질 예
+예:隸:종 례, 노비 례, 검열할 례
 예:翳:어조사 예, 깃 일산 예, 가려 숨길 예, 새이름 예
-예:瘞:
 예:繄:검푸른 비단 예, 탄식하는 소리 예
 예:睨:
 예:蕊:꽃술 예, 꽃 예
 예:曀:
 예:蛻:
 예:枘:자루 예
+예:拽:당길 예
+예:蜺:말매미 예, 암무지개 예
+예:薉:더러울 예
+예:鷖:갈매기 예, 봉황 예
+예:蕋:蕊의 俗字
+예:蚋:모기 예
+예:囈:잠꼬대할 예, 헛소리할 예
+예:瞖:눈에 백태 낄 예
+예:麑:아기사슴 예, 사자 예
+예:嫛:유순할 예, 갓난아이 예
+예:惢:
+예:掜:부칠 예, 비길 예, 잡을 예, 당길 예
+예:苅:벨 예, 자를 예
+예:瘞:
 예:羿:
 예:勩:
 예:蜹:
-예:拽:당길 예
-예:蜺:말매미 예, 암무지개 예
 예:曵:
 예:䓲:
-예:薉:더러울 예
 예:䛖:
-예:鷖:갈매기 예, 봉황 예
 예:輗:
-예:蕋:蕊의 俗字
-예:蚋:모기 예
 예:蓺:
 예:貎:
 예:䃜:
-예:囈:잠꼬대할 예, 헛소리할 예
 예:埶:
 예:堄:
 예:晲:
 예:㡼:
-예:瞖:눈에 백태 낄 예
-예:麑:아기사슴 예, 사자 예
 예:枍:
 예:瑿:
 예:蘙:
 예:预:
 예:鲵:
 예:鹥:
-예:嫛:유순할 예, 갓난아이 예
-예:惢:
-예:掜:부칠 예, 비길 예, 잡을 예, 당길 예
-예:苅:벨 예, 자를 예
 예:兿:
 예:呭:
 예:壡:
 오:旿:밝을 오, 대낮 오
 오:忤:거스릴 오, 미워할 오
 오:嗷:여럿이 걱정할 오
-오:杇:
 오:媪:할미 오, 땅귀신 오
 오:汙:汚와 同字
 오:遨:노닐 오
 오:鏖:무찌를 오, 구리동이 오
-오:悞:
-오:䫨:
 오:襖:도포 오
-오:吴:
-오:污:
-오:牾:
 오:迃:
 오:驁:준마 오, 깔볼 오
 오:媼:
 오:窹:아궁이 오
 오:迕:만날 오, 어길 오
 오:鼯:날다람쥐 오
-오:呉:
-오:洿:
 오:聱:못 들은채 할 오, 말 더듬거릴 오
-오:厫:
 오:唔:글 읽는 소리 오
 오:慠:거만할 오
 오:謷:중얼거릴 오, 거만할 오
 오:隩:감출 오, 물가 언덕 오
 오:捂:부닥칠 오, 거스릴 오
 오:鏊:번철 오
+오:仵:짝 오, 같을 오
+오:俣:갈래질 오
+오:圬:흙손 오
+오:噁:성낼 오
+오:嫯:업신여길 오
+오:茣:차조기 오
+오:杇:
+오:悞:
+오:䫨:
+오:吴:
+오:污:
+오:牾:
+오:呉:
+오:洿:
+오:厫:
 오:噢:
 오:鄔:
 오:嗸:
 오:廒:
 오:璈:
 오:㹳:
-오:仵:짝 오, 같을 오
 오:圫:
 오:嵨:
 오:嶅:
 오:鷔:
 오:㥿:
 오:鳌:
-오:俣:갈래질 오
-오:圬:흙손 오
 오:乌:
 오:呜:
 오:坞:
 오:误:
 오:钨:
 오:骜:
-오:噁:성낼 오
-오:嫯:업신여길 오
-오:茣:차조기 오
 오:乄:
 오:啎:
 오:埡:
 온:瘟:염병 온, 온역 온
 온:瑥:사람이름 온
 온:醞:술 빚을 온
-온:温:
 온:慍:성낼 온, 병 온
+온:氳:기운 어릴 온, 기운 성할 온
+온:韞:감출 온, 붉은 빛 온
+온:媼:
+온:昷:어질 온
+온:薀:마름 온, 쌓일 온
+온:轀:온량차 온
+온:熅:
+온:饂:밀 국수 온
+온:鰮:멸치 온
+온:温:
 온:愠:
 온:藴:
 온:蕰:
-온:氳:기운 어릴 온, 기운 성할 온
 온:氲:
-온:韞:감출 온, 붉은 빛 온
-온:媼:
 온:醖:
 온:馧:
-온:昷:어질 온
 온:鞰:
-온:薀:마름 온, 쌓일 온
-온:轀:온량차 온
 온:榲:
 온:蒕:
-온:熅:
 온:塭:
 온:瘒:
 온:鎾:
 온:辒:
 온:韫:
 온:鳁:
-온:饂:밀 국수 온
-온:鰮:멸치 온
 온:搵:
 온:桽:
 온:殟:
 온훈:溫燻:
 온훈법:溫燻法:
 올:兀:우뚝할 올, 움직이지 않을 올, 오똑할 올
+올:膃:해구 올, 살찔 올
+올:嗢:목 멜 올
 올:腽:
 올:杌:
 올:卼:
 올:屼:
-올:膃:해구 올, 살찔 올
 올:扤:
-올:嗢:목 멜 올
 올:矹:
 올:㐏:
 올:乯:
 옹:饔:아침밥 옹
 옹:癰:헌곳
 옹:顒:우러를 옹
-옹:痈:
 옹:喁:물고기 입 오물거릴 옹
 옹:蓊:옹풀 옹, 우거질 옹
 옹:雝:조화로울 옹, 학교 옹
 옹:罋:甕과 同字
 옹:禺:땅 이름 옹
 옹:廱:벽옹 옹
+옹:癕:등창 옹
+옹:痈:
 옹:臃:
 옹:䩺:
 옹:㙲:
 옹:㝘:
 옹:拥:
 옹:颙:
-옹:癕:등창 옹
 옹:勜:
 옹:嗈:
 옹:嗡:
 와:鍋:
 와:窪:도랑 와, 깊을 와, 맑은물 와
 와:娃:
-와:卧:
 와:洼:물 이름 와
 와:哇:음란한 소리 와, 게울 와
 와:媧:
 와:涴:
 와:譌:거짓 와, 와전될 와, 요사스런 말 와
 와:萵:상추 와, 부루 와
-와:鼃:
 와:囮:새 후릴 와
-와:吪:
-와:䨟:
 와:枙:옹이 와
 와:窊:웅덩이 와
+와:婐:정숙할 와, 단정할 와
+와:猧:와개 와
+와:卧:
+와:鼃:
+와:吪:
+와:䨟:
 와:捰:
 와:漥:
 와:鈋:
 와:莴:
 와:蜗:
 와:讹:
-와:婐:정숙할 와, 단정할 와
-와:猧:와개 와
 와:佤:
 와:咓:
 와:唩:
 완:脘:중완 완
 완:豌:동부 완, 완두 완
 완:惋:한탄할 완, 놀라 탄식할 완
-완:薍:
 완:岏:산 뾰족할 완
 완:蜿:
 완:盌:은 바리 완
 완:刓:깎을 완
-완:剜:
 완:涴:물 굽이쳐 흐를 완, 진흙 묻을 완
+완:忨:탐할 완, 사랑할 완
+완:垸:회 섞어 바를 완
+완:妧:좋을 완, 고울 완
+완:薍:
+완:剜:
 완:抏:
 완:輐:
-완:忨:탐할 완, 사랑할 완
 완:园:
 완:缓:
 완:顽:
-완:垸:회 섞어 바를 완
-완:妧:좋을 완, 고울 완
 완:唍:
 완:啘:
 완:埦:
 왕:旺:고울 왕, 해무리 왕, 성할 왕, 왕성할 왕
 왕:汪:물 출렁출렁할 왕, 연못 왕, 깊고넓을 왕
 왕:枉:굽을 왕, 원통할 왕
+왕:尫:절름발이 왕, 파리할 왕, 천상바라기 왕
+왕:迬:往과 同字
+왕:瀇:아득할 왕, 넓을 왕, 고인 물 썪어 냄새날 왕
 왕:徃:
 왕:尢:절름발이
-왕:尫:절름발이 왕, 파리할 왕, 천상바라기 왕
 왕:仼:
-왕:迬:往과 同字
 왕:㲿:
-왕:瀇:아득할 왕, 넓을 왕, 고인 물 썪어 냄새날 왕
 왕:尣:
 왕:尩:
 왕:尪:
 외:猥:더러울 외, 굽을 외, 섞일 외, 개 새끼 셋 낳을 외, 음란할 외
 외:巍:높을 외, 높고 튼 모양 외
 외:嵬:산 뾰족할 외, 산 울뚝질뚝할 외, 험할 외
-외:隈:
-외:廆:
 외:聵:배냇귀머거리 외
 외:煨:불에 묻어 구울 외, 그슬릴 외, 사람이름 외
-외:桅:
 외:隗:높을 외, 성씨 외
 외:磈:돌 사닥다리 외
 외:偎:사랑할 외, 가물거릴 외
 외:崴:평평치 아니할 외
-외:椳:
 외:碨:돌 자갈 땅 외, 바위 옹두라지 외
+외:嵔:산이름 외, 산 높을 외
+외:渨:더러울 외
+외:隈:
+외:廆:
+외:桅:
+외:椳:
 외:詴:
 외:懀:
 외:揋:
 외:腲:
 외:聩:
 외:鳂:
-외:嵔:산이름 외, 산 높을 외
-외:渨:더러울 외
 외:峞:
 외:徻:
 외:愄:
 요:橈:노 요, 돛대 요
 요:燿:비칠 요, 빛날 요
 요:蟯:촌백충 요
-요:么:
 요:幺:작을 요, 어릴 요, 작다 요
 요:徭:부릴 요
 요:澆:걸찰 요, 물 끌어올 요
 요:殀:단명할 요
 요:軺:
 요:蕘:나무할 요, 거칠 요
+요:遶:둘릴 요
+요:窅:움펑눈 요, 까마득할 요
+요:嚙:
+요:坳:凹와 同字
+요:鷂:장끼 요, 새매 요
+요:祅:재앙 요
+요:穾:깊숙할 요, 골방 요
+요:銚:
+요:墝:메마른 밭 요, 자갈 땅 요
+요:偠:허리 가늘 요
+요:喓:벌레소리 요
+요:嬈:예쁜체 할 요
+요:么:
 요:揺:
 요:謡:
 요:摇:
 요:窑:
-요:遶:둘릴 요
 요:瑶:
 요:窰:
-요:窅:움펑눈 요, 까마득할 요
-요:嚙:
-요:坳:凹와 同字
-요:鷂:장끼 요, 새매 요
 요:颻:
 요:㴭:
 요:尭:
-요:祅:재앙 요
-요:穾:깊숙할 요, 골방 요
-요:銚:
 요:傜:
 요:宎:
 요:袎:
 요:窔:
 요:䁏:
 요:䆗:
-요:墝:메마른 밭 요, 자갈 땅 요
 요:嶤:
 요:珧:
 요:芺:
 요:饶:
 요:鳐:
 요:鹞:
-요:偠:허리 가늘 요
-요:喓:벌레소리 요
-요:嬈:예쁜체 할 요
 요:仸:
 요:吆:
 요:嗂:
 욕:褥:요
 욕:縟:꾸밀
 욕:溽:유월 더위 욕, 무더울 욕
-욕:鵒:
 욕:蓐:새싹 욕, 가을 맡은 귀신 욕
+욕:鵒:
 욕:鄏:
 욕:昙:
 욕:缛:
 용:慵:게으를 용
 용:宂:번잡할 용, 바쁠 용, 떠돌아 다닐 용
 용:踴:뛸 용
-용:佣:
 용:憃:천치 용
-용:鄘:
 용:嵱:봉우리 쭝굿쭝굿할 용
-용:㼸:
 용:筩:
+용:硧:
+용:蛹:번데기 용
+용:傛:혁혁할 용, 몸 굽힐 용
+용:槦:병기 얹는 시렁 용
+용:佣:
+용:鄘:
+용:㼸:
 용:牗:
 용:摏:
 용:牅:
 용:髶:
-용:硧:
-용:蛹:번데기 용
 용:蹖:
 용:䢇:
 용:耸:
 용:镛:
 용:鲬:
 용:鳙:
-용:傛:혁혁할 용, 몸 굽힐 용
-용:槦:병기 얹는 시렁 용
 용:傇:
 용:勈:
 용:塎:
 우:虞:염려할 우, 즐거울 우, 갖출 우, 우제 지낼 우
 우:寓:살 우, 부탁할 우, 빙자할 우, 붙어살 우
 우:隅:모퉁이 우, 기슭 우
-우:嵎:산모퉁이
 우:禑:복
 우:雩:기우제 우, 무지개 우
 우:紆:얽힐 우, 굽을 우
 우:芋:토란 우
 우:藕:연뿌리 우
 우:玗:옥돌 우, 우기나무 우
+우:嵎:산모퉁이
 우:釪:요령 우, 바리때 우, 풍류그릇 우
 우:吁:
 우:亏:
 우:盱:
 우:喁:서로 부를 우
 우:竽:큰 생황 우
-우:訏:
 우:俁:
 우:迃:
-우:圩:
-우:穻:
 우:疣:
 우:耰:고무래 우, 곰방메 우
-우:㝢:
 우:禺:
 우:麀:암사슴 우
+우:麌:숫사슴 우
+우:庽:
+우:杅:
+우:鍝:귀고리 우
+우:俣:
+우:亴:
+우:偊:
+우:吽:개 싸울 우, 개 짖는 소리 우
+우:謣:망령되게 말할 우
+우:齲:충치 우
+우:訏:
+우:圩:
+우:穻:
+우:㝢:
 우:塸:
 우:櫌:
 우:苃:
 우:嚘:
-우:麌:숫사슴 우
 우:懮:
 우:訧:
 우:㘾:
 우:㚥:
 우:䁱:
-우:庽:
-우:杅:
-우:鍝:귀고리 우
 우:噳:
 우:扜:
 우:楀:
 우:䋅:
 우:䨞:
 우:叹:
-우:俣:
 우:优:
 우:忧:
 우:怄:
 우:邮:
 우:鱿:
 우:龋:
-우:亴:
-우:偊:
-우:吽:개 싸울 우, 개 짖는 소리 우
-우:謣:망령되게 말할 우
-우:齲:충치 우
 우:吘:
 우:媀:
 우:峟:
 욱:栯:산앵두 욱
 욱:稶:서직 무성할 욱, 서속이 우거진 모양 욱
 욱:燠:더울 욱
-욱:勗:
 욱:隩:
+욱:勗:
 욱:䤋:
 욱:薁:
 욱:稢:
 운:韵:韻과 同字
 운:惲:의논할 운, 혼후할 운
 운:沄:물 콸콸 흐를 운, 끓을 운
-운:餫:
-운:鄆:
 운:霣:떨어질 운, 천둥에 비 몰아올 운
 운:篔:왕대나무 운
+운:餫:
+운:鄆:
 운:鄖:
 운:溳:
 운:夽:
 울:鬱:향기로운 풀 울, 무성할 울
 울:蔚:고을이름 울
 울:亐:땅이름
+울:熨:
 울:欝:
 울:㭗:
-울:熨:
 울:菀:
 울:鬰:
 울:爩:
 원:洹:흐를 원, 물 이름 원
 원:円:
 원:冤:원통할 원, 원한 원
-원:貟:
 원:圜:
-원:逺:
 원:鵷:원추새 원
 원:蜿:굼틀거릴 원
-원:畹:
 원:黿:큰 자라 원
-원:晼:
 원:謜:천천히 말할 원, 기꺼울 원
+원:猨:猿과 同字
+원:杬:몸 주무를 원, 나무이름 원
+원:楥:떡갈나무 원, 실감개 원, 신골 원
+원:綩:
+원:芫:고기 잡는 풀 원, 여뀌 원
+원:薗:園과 同字
+원:鋺:저울 바탕 원
+원:騵:배 희고 갈기 검은 말 원
+원:貟:
+원:逺:
+원:畹:
+원:晼:
 원:圎:
 원:榞:
-원:猨:猿과 同字
 원:㤪:
 원:㥳:
 원:䲶:
-원:杬:몸 주무를 원, 나무이름 원
 원:夘:
 원:眢:
 원:踠:
-원:楥:떡갈나무 원, 실감개 원, 신골 원
 원:夗:
 원:溒:
 원:茒:
 원:鹓:
 원:鼋:
 원:䓕:
-원:綩:
-원:芫:고기 잡는 풀 원, 여뀌 원
-원:薗:園과 同字
-원:鋺:저울 바탕 원
-원:騵:배 희고 갈기 검은 말 원
 원:倇:
 원:傆:
 원:傊:
 위:蔿:풀 위, 성씨 위, 고을이름 위
 위:為:
 위:諉:핑계할 위, 버릴 위
-위:喂:
 위:闈:대궐안의 문 위
 위:衞:막을 위, 지킬 위, 핏기운 위, 나라이름 위
 위:逶:비틀거릴 위
 위:喟:한숨쉴 위
-위:猬:
 위:韙:옳을 위
 위:痿:습병 위, 잘름거릴 위, 음위증 위
 위:葳:초목 성할 위, 위유풀 위
-위:偽:
 위:撝:
 위:煒:벌그레할 위, 환할 위
 위:幃:향낭 위, 홑휘장 위
 위:熨:다리미 위, 고약 붙일 위
 위:韡:꽃 환히 필 위
-위:㙔:
 위:餧:먹일 위
+위:潙:
+위:骪:
+위:喂:
+위:猬:
+위:偽:
+위:㙔:
 위:蘤:
 위:骫:
-위:潙:
 위:罻:
 위:蝛:
 위:躗:
 위:徫:
 위:湋:
 위:硊:
-위:骪:
 위:縅:
 위:蜲:
 위:䦱:
 유:釉:물건 빛날 유
 유:籲:부르짖을 유
 유:帷:휘장 유
-유:襦:
 유:牖:엇살창 유, 들창 유, 밝을 유, 인도할 유
 유:壝:토담 유, 단 둘러쌓은 담 유
 유:囿:엔담 유, 고루할 유
-유:俞:
 유:腴:아랫배 살찔 유
 유:逌:빙그레할 유
-유:覦:
-유:喻:
 유:莠:가라지 유, 추할 유
-유:嚅:
-유:嵛:
 유:糅:섞일 유, 얽힐 유, 잡곡밥 유
-유:㓜:
 유:揉:풀 유, 부드럽게 할 유, 희일 유
 유:蕕:냄새나는 풀 유, 유풀 유
 유:蕤:더북할 유
-유:褎:
-유:輶:
 유:窬:판장문 유
 유:黝:검푸를 유, 검은칠할 유
+유:瘐:죄인 주려 죽을 유
+유:緌:
+유:窳:이지러질 유, 약할 유, 짐승이름 유
+유:讉:성낼 유
+유:呦:사슴 우는 소리 유, 새짐승 우는 소리 유
+유:鮪:상어 유
+유:蠕:
+유:褕:꿩의 깃으로 꾸민 옷 유, 쾌자 유
+유:泑:물빛이 검을 유, 물이름 유
+유:冘:머뭇거릴 유, 갈 유
+유:蚴:굼틀거릴 유
+유:蝤:하루살이 유
+유:鼬:청서 유, 족제비 유
+유:斿:깃발 유, 깃술 유, 면류관술 유
+유:瘉:癒와 同字
+유:蚰:노래기 유, 땅지네 유
+유:鞣:다룬 가죽 유, 마른 가죽 유
+유:龥:부르짖을 유
+유:襦:
+유:俞:
+유:覦:
+유:喻:
+유:嚅:
+유:嵛:
+유:㓜:
+유:褎:
+유:輶:
 유:蝣:
 유:褏:
 유:婾:
 유:曘:
 유:蜼:
 유:㳺:
-유:瘐:죄인 주려 죽을 유
-유:緌:
 유:浟:
-유:窳:이지러질 유, 약할 유, 짐승이름 유
 유:㽔:
 유:䛕:
 유:擩:
 유:槱:
 유:羑:
-유:讉:성낼 유
 유:毹:
 유:狖:
 유:薷:
 유:逰:
-유:呦:사슴 우는 소리 유, 새짐승 우는 소리 유
 유:濰:
 유:隃:
-유:鮪:상어 유
 유:媮:
 유:滺:
 유:㽥:
-유:蠕:
-유:褕:꿩의 깃으로 꾸민 옷 유, 쾌자 유
 유:卣:
 유:痏:
-유:泑:물빛이 검을 유, 물이름 유
 유:婑:
 유:楺:
 유:渪:
 유:甤:
 유:㺄:
 유:䘱:
-유:冘:머뭇거릴 유, 갈 유
-유:蚴:굼틀거릴 유
-유:蝤:하루살이 유
-유:鼬:청서 유, 족제비 유
 유:崳:
 유:怮:
 유:榆:
 유:颥:
 유:鲉:
 유:鲔:
-유:斿:깃발 유, 깃술 유, 면류관술 유
-유:瘉:癒와 同字
-유:蚰:노래기 유, 땅지네 유
-유:鞣:다룬 가죽 유, 마른 가죽 유
-유:龥:부르짖을 유
 유:丣:
 유:偤:
 유:匬:
 육:戮:죽일 륙, 육시할 륙, 욕할 륙
 육:堉:기름진 땅 육
 육:毓:기를 육, 어릴 육, 많을 육
-육:淯:
 육:儥:팔 육, 길 육
+육:淯:
 육:錥:
 육:哊:
 육:唷:
 윤:畇:
 윤:奫:물 깊을 윤, 물이 충충할 윤, 물이 층층한 윤
 윤:玧:귀막이 구슬 윤
+윤:昀:
+윤:鋆:
 윤:酳:
 윤:閠:
 윤:狁:
 윤:蝡:
 윤:㣧:
-윤:昀:
 윤:阭:
 윤:润:
 윤:赟:
 윤:闰:
-윤:鋆:
 윤:橍:
 윤:膶:
 윤:荺:
 율:栗:밤 률, 신주 재목 률, 단단할 률, 무서울 률, 공손할 률
 율:慄:두려울 률, 쭈그릴 률, 슬플 률, 떨 률
 율:聿:마침내 율, 지을 율, 오직 율, 스스로 율, 붓 율, 드디어 율
-율:茟:
 율:潏:물 흐를 율
-율:䢖:
 율:矞:송곳질할 율, 상서구름 율, 궤휼할 율, 귀신이름 율
+율:茟:
+율:䢖:
 율:欥:
 율:鴥:
 율:噊:
 융:戎:병장기 융, 싸움수레 융, 클 융, 너 융, 도울 융, 서쪽 오랑캐 융
 융:絨:삶은 실 융, 가는 베 융
 융:瀜:물 깊을 륭, 물깊은 모양 융
+융:狨:원숭이 융
 융:羢:
 융:漋:
 융:娀:
 융:㭜:
-융:狨:원숭이 융
 융:肜:
 융:駥:
 융:绒:
 은:圻:언덕 은
 은:慇:은근할 은, 공손할 은, 간절할 은
 은:訔:시비할 은
+은:听:벙긋거릴 은, 들을 은, 입이 큰 모양 은
+은:憖:물을 은, 공근할 은, 힘쓸 은, 서러워할 은
+은:嚚:어리석을 은, 말다툼할 은, 불칙하게 말할 은
+은:狺:뭇 개 짖는 소리 은
+은:溵:물소리 은, 물이름 은
+은:檼:집 마룻대 은, 대공 은
+은:癮:두드러기 은
+은:垽:해감 은, 찌끼 은
+은:鄞:땅이름 은
+은:圁:물이름 은
+은:珢:옥돌 은
+은:齗:잇몸 은, 말다툼할 은, 미워할 은
+은:齦:
 은:隠:
 은:隐:
-은:听:벙긋거릴 은, 들을 은, 입이 큰 모양 은
 은:穏:
 은:稳:
-은:憖:물을 은, 공근할 은, 힘쓸 은, 서러워할 은
 은:垦:
 은:㤙:
 은:檃:
-은:嚚:어리석을 은, 말다툼할 은, 불칙하게 말할 은
-은:狺:뭇 개 짖는 소리 은
 은:㥯:
 은:櫽:
-은:溵:물소리 은, 물이름 은
-은:檼:집 마룻대 은, 대공 은
-은:癮:두드러기 은
 은:泿:
 은:慭:
-은:垽:해감 은, 찌끼 은
-은:鄞:땅이름 은
 은:濦:
 은:磤:
 은:㶏:
 은:訚:
 은:银:
 은:龂:
-은:圁:물이름 은
-은:珢:옥돌 은
-은:齗:잇몸 은, 말다툼할 은, 미워할 은
-은:齦:
 은:乚:숨을
 은:嗯:
 은:峎:
 은휼:隱恤:
 은흑색:銀黑色:
 을:乙:새 을, 천간 이름 을, 굽힐 을, 생선의 창자 을, 모모 을
+을:鳦:제비 을
 을:圪:
 을:钇:
-을:鳦:제비 을
 을:釔:
 을:䎲:
 을골:乙骨:
 음:吟:읊을 음, 끙끙거릴 음, 탄식할 음, 턱 끄덕거릴 음, 노래할 음, 말 더듬을 음, 울 음
 음:淫:방탕할 음, 간음할 음, 음란할 음, 넘칠 음, 적실 음, 오랠 음
 음:蔭:덮을 음, 가릴 음, 그늘 음
-음:隂:
 음:喑:소리지를 음, 안간힘 쓸 음, 목 쉴 음
 음:愔:조용할 음, 화평할 음
 음:霪:장마 음
-음:䕃:
 음:崟:멧부리 음, 산 높을 음
+음:廕:덮을 음
+음:隂:
+음:䕃:
 음:飲:
 음:瘖:
 음:婬:
 음:荫:
 음:阴:
 음:饮:
-음:廕:덮을 음
 음:乑:
 음:侌:
 음:噖:
 의:薏:연밥 의, 율무 의
 의:艤:배 닿을 의, 배언덕에 댈 의
 의:錡:세발 가마 의, 쇠뇌틀 의, 휘뚝거릴 의
-의:医:
 의:猗:불 깐 개 의, 탄식할 의, 길 의
 의:嶷:산이름 의
 의:欹:아름답다할 의, 거룩하다할 의
-의:义:
 의:漪:물놀이칠 의
+의:儗:서로 못믿을 의, 참람할 의
+의:劓:코 베일 의, 베일 의
+의:螘:목 매어 죽는 벌레 의
+의:饐:밥 쉴 의
+의:凒:눈서리 쌓일 의
+의:礒:바위 의
+의:医:
+의:义:
 의:冝:
 의:扆:
 의:顗:
-의:儗:서로 못믿을 의, 참람할 의
 의:宐:
 의:檥:
 의:毉:
 의:竩:
 의:㼁:
-의:劓:코 베일 의, 베일 의
 의:禕:
-의:螘:목 매어 죽는 벌레 의
 의:旖:
 의:犄:
 의:薿:
 의:㠜:
 의:㦤:
-의:饐:밥 쉴 의
 의:譩:
 의:㩘:
 의:䝘:
 의:铱:
 의:镱:
 의:饻:
-의:凒:눈서리 쌓일 의
-의:礒:바위 의
 의:亄:
 의:偯:
 의:吚:
 이:荑:흰 비름 이, 베일 이, 벨 이
 이:彝:떳떳할 이, 법 이, 종묘 제기 이, 술통 이
 이:迤:든든할 이
+이:訑:자랑할 이
+이:詑:자랑할 이
+이:洟:콧물 이, 눈물 이, 못이름 이
+이:咿:선웃음칠 이, 책 읽는 소리 이
+이:珆:
+이:栮:버섯 이, 느타리 이
+이:尔:爾와 同字
+이:隶:밑 이, 미치다 이
+이:鮧:창자젓 이
+이:坨:
 이:頉:
 이:頤:
 이:羡:
 이:尒:
 이:异:
-이:訑:자랑할 이
 이:圯:
-이:詑:자랑할 이
 이:薾:
 이:迩:
-이:洟:콧물 이, 눈물 이, 못이름 이
 이:儞:
 이:匜:
 이:貮:
 이:洱:
 이:眤:
 이:輀:
-이:咿:선웃음칠 이, 책 읽는 소리 이
 이:杝:
 이:敡:
 이:眙:
 이:栭:
 이:酏:
 이:頥:
-이:珆:
 이:羠:
 이:苢:
 이:蛦:
 이:黟:
-이:栮:버섯 이, 느타리 이
 이:佁:
 이:刵:
 이:崺:
 이:㕥:
 이:㠯:
 이:䔬:
-이:尔:爾와 同字
-이:隶:밑 이, 미치다 이
 이:弐:
 이:诒:
 이:贰:
 이:饵:
 이:鲕:
 이:鸸:
-이:鮧:창자젓 이
-이:坨:
 이:乁:
 이:伿:
 이:佴:
 익:匿:숨을 닉, 숨길 닉, 덮어둘 닉, 몰래 붙을 닉, 쌀 닉, 술 담는 그릇 닉
 익:謚:웃을 익, 웃는모양 익
 익:瀷:강이름 익, 스며흐를 익
-익:榏:
 익:弋:주살 익, 취할 익, 홰 익, 검을 익, 벼슬이름 익, 오랑캐 익
 익:鷁:익새 익, 돛대 끝 바람개비 익
-익:釴:
 익:熤:빛날 익, 사람이름 익
+익:榏:
+익:釴:
 익:杙:
 익:嗌:
 익:艗:
 인:燐:도깨비불 인, 반딧불 인
 인:蚓:지렁이 인
 인:靭:韌과 同字, 질긴 고기 인
-인:堙:막을 인
 인:璘:옥빛 인
 인:茵:자리 인, 사철쑥 인
 인:絪:기운 인, 수삼 인
 인:靷:가슴걸이 인
 인:藺:골풀 인, 뇌양이 인
+인:堙:막을 인
 인:仞:길 인
 인:禋:제사지낼 인
 인:夤:조심할 인
+인:氤:기운성할 인
+인:裀:요 인
+인:婣:姻과 同字
+인:洇:湮과 同字
+인:扨:그러하나 인
+인:籾:벼 인
+인:芢:씨 인
 인:訒:
 인:軔:
 인:儿:어진사람
-인:氤:기운성할 인
 인:囙:
-인:裀:요 인
 인:紉:
 인:闉:
 인:戭:
 인:牣:
-인:婣:姻과 同字
 인:諲:
 인:韌:
 인:鏔:
 인:釼:
 인:陻:
 인:㣼:
-인:洇:湮과 同字
 인:仭:
 인:欭:
 인:歅:
 인:铟:
 인:韧:
 인:骃:
-인:扨:그러하나 인
-인:籾:벼 인
-인:芢:씨 인
 인:亻:사람인변
 인:凐:
 인:刄:
 일:佚:편안할 일, 편할 일
 일:馹:역말 일, 역마 일
 일:軼:앞지를 일
-일:釰:
 일:泆:끊을 일
+일:釰:
 일:皼:
 일:衵:
 일:壱:
 임:恁:생각할 임, 믿을 임
 임:妊:아이밸 임
 임:衽:옷깃 임
-임:袵:
 임:飪:익힐 임
 임:絍:짤 임, 길쌈할 임
+임:銋:젖을 임
+임:袵:
 임:餁:
 임:紝:
-임:銋:젖을 임
 임:棯:
 임:腍:
 임:鈓:
 자:孜:힘쓸 자, 부지런할 자
 자:茨:가시나무 자, 납가새 자
 자:薺:
-자:兹:
 자:茲:무성할 자
-자:姊:
 자:貲:재물 자
 자:眦:眥와 同字
-자:扻:
 자:孶:부지런할 자
 자:訾:헐뜯을 자
 자:赭:붉은흙 자
 자:觜:털뿔 자
 자:泚:맑을 자
 자:柘:산뽕나무 자
-자:煑:
-자:趦:
-자:朿:
-자:胔:
 자:耔:복돋을 자
 자:鷓:자고 자
 자:眥:흘길 자
-자:趑:
 자:鶿:가마우지 자
 자:牸:암컷 자
+자:胾:고깃점 자
+자:呰:주차할 자
+자:鎡:호미 자
+자:莿:풀가시 자
+자:鮓:젓 자
+자:嬨:계집성품너그러고순할 자
+자:孖:쌍둥이 자
+자:茈:지치 자
+자:虸:
+자:蚱:
+자:頿:코밑수염 자
+자:兹:
+자:姊:
+자:扻:
+자:煑:
+자:趦:
+자:朿:
+자:胔:
+자:趑:
 자:餈:
 자:孳:
 자:嵫:
 자:庛:
 자:訿:
 자:澬:
-자:胾:고깃점 자
 자:㧗:
-자:呰:주차할 자
 자:榨:
-자:鎡:호미 자
 자:杍:
 자:啫:
 자:栥:
 자:稵:
 자:㹀:
 자:䵭:
-자:莿:풀가시 자
-자:鮓:젓 자
 자:呲:
 자:姕:
 자:橴:
 자:鲊:
 자:鲝:
 자:鹧:
-자:嬨:계집성품너그러고순할 자
-자:孖:쌍둥이 자
-자:茈:지치 자
-자:虸:
-자:蚱:
-자:頿:코밑수염 자
 자:刾:
 자:吇:
 자:啙:
 작:酢:초 작
 작:怍:부끄러울 작
 작:焯:밝을 작
-작:妁:
 작:碏:삼갈 작
-작:鷟:
 작:柞:나무이름 작
-작:婥:
-작:爝:
-작:皭:
 작:岝:산 높을 작
 작:汋:삶을 작
 작:犳:아롱 짐승 작
+작:斱:쪼갤 작
+작:妁:
+작:鷟:
+작:婥:
+작:爝:
+작:皭:
 작:圴:
 작:扚:
 작:禚:
 작:猎:
 작:绰:
 작:鹊:
-작:斱:쪼갤 작
 작:仢:
 작:妰:
 작:岞:
 잔:棧:잔교 잔, 사다리 잔
 잔:孱:잔약할 잔
 잔:潺:물이 줄줄 흐르는 모양 잔, 물졸졸흐르는 모양 잔
-잔:残:
 잔:戔:쌓일 잔
 잔:剗:깍을 잔
+잔:驏:안장 얹지 않은 말 잔
+잔:残:
 잔:醆:
 잔:僝:
 잔:刬:
 잔:栈:
 잔:盏:
 잔:骣:
-잔:驏:안장 얹지 않은 말 잔
 잔:嶘:
 잔:拃:
 잔:桟:
 잠:岑:봉우리 잠, 높을 잠
 잠:潜:潛의 俗字
 잠:蚕:누에 잠
-잠:蹔:
-잠:蘸:
-잠:埁:
 잠:涔:괸물 잠
 잠:梣:
 잠:笒:
 잠:濳:潛의 俗字
+잠:蹔:
+잠:蘸:
+잠:埁:
 잠:簮:
 잠:熸:
 잠:篸:
 잠획:潛劃:
 잡:雜:섞일 잡, 잡될 잡
 잡:閘:
+잡:襍:雜의 本字
+잡:磼:산 높을 잡
+잡:霅:
+잡:卡:관 잡
+잡:囃:장단 잡을 잡
+잡:眨:눈 깜작일 잡
 잡:匝:
 잡:迊:
-잡:襍:雜의 本字
 잡:雑:
-잡:磼:산 높을 잡
 잡:帀:
-잡:霅:
 잡:啑:
 잡:煠:
 잡:咂:
 잡:币:
 잡:杂:
-잡:卡:관 잡
-잡:囃:장단 잡을 잡
-잡:眨:눈 깜작일 잡
 잡:咔:
 잡:嘁:
 잡:抸:
 장:欌:장농 장, 장롱 장
 장:暲:햇발이 돋아올 장, 밝을 장
 장:将:
-장:壮:
-장:墙:
-장:蔵:
 장:装:裝의 俗字
-장:荘:
 장:戕:죽일 장
-장:膓:
 장:瘴:장기 장
 장:嶂:높고 가파른 산 장
-장:奨:
 장:鏘:금옥 소리 장
-장:臓:
-장:贜:
 장:糚:妝과 同字
-장:塲:
 장:漳:강이름 장
 장:萇:나무 이름 장
 장:奘:클 장
-장:髒:
-장:駔:
 장:賬:치부책 장
 장:麞:노루 장
-장:槳:
 장:牂:암양 장
+장:妝:꾸밀 장
+장:嬙:궁녀 장
+장:廧:담 장
+장:橦:
+장:鄣:나라이름 장
+장:傽:놀랄 장
+장:羘:수양 장
+장:餦:산자 장
+장:壮:
+장:墙:
+장:蔵:
+장:荘:
+장:膓:
+장:奨:
+장:臓:
+장:贜:
+장:塲:
+장:髒:
+장:駔:
+장:槳:
 장:慞:
 장:嶈:
 장:螿:
-장:妝:꾸밀 장
 장:扙:
 장:斨:
 장:粻:
 장:樁:
-장:嬙:궁녀 장
-장:廧:담 장
-장:橦:
-장:鄣:나라이름 장
 장:蘠:
 장:醤:
 장:摪:
 장:长:
 장:驵:
 장:鳉:
-장:傽:놀랄 장
-장:羘:수양 장
-장:餦:산자 장
 장:丬:
 장:仉:
 장:仧:
 재:齎:탄식할 재, 쌀 재, 가질 재
 재:灾:災와 同字
 재:纔:겨우 재, 비롯할 재
-재:賫:
-재:㢤:
 재:菑:
 재:榟:
+재:夈:
+재:扗:
+재:崽:
+재:賫:
+재:㢤:
 재:䝴:
 재:賷:
 재:㦲:
 재:财:
 재:载:
 재:龇:
-재:夈:
-재:扗:
-재:崽:
 재:侢:
 재:傤:
 재:儎:
 쟁:錚:쇳소리 쟁그렁거릴 쟁, 징 쟁
 쟁:諍:간할 쟁
 쟁:箏:쟁 쟁, 풍경 쟁
-쟁:争:
 쟁:崢:가파를 쟁, 산 높을 쟁
 쟁:鎗:금석소리 쟁, 창 쟁, 총 쟁
-쟁:峥:
-쟁:筝:
 쟁:瞠:똑바로 볼 쟁
 쟁:鐺:
+쟁:琤:옥소리 쟁
+쟁:猙:밉살스럴 쟁, 짐승이름 쟁
+쟁:争:
+쟁:峥:
+쟁:筝:
 쟁:掁:
 쟁:崝:
-쟁:琤:옥소리 쟁
 쟁:掙:
 쟁:䋫:
 쟁:挣:
 쟁:狰:
 쟁:诤:
 쟁:铮:
-쟁:猙:밉살스럴 쟁, 짐승이름 쟁
 쟁:噌:
 쟁:崡:
 쟁:棦:
 저:箸:젓가락 저
 저:詛:저주할
 저:狙:원숭이 저, 엿볼 저, 살필 저
-저:觝:찌를 저, 받을 저, 씨름 저
 저:苧:모시 저
 저:儲:쌓을 저, 버금 저, 용납할 저
 저:楮:닥나무 저, 종이돈 저, 감매나무 저
 저:樗:가죽나무 저
 저:菹:김치 저, 푸서리 저
 저:姐:맏누이 저, 아가씨 저, 교만할 저
+저:觝:찌를 저, 받을 저, 씨름 저
 저:藷:마 저, 감자 저
 저:齟:이 어긋날 저
 저:詆:꾸짖을 저, 알소할 저, 비방할 저
 저:氐:낮을 저, 오랑캐 이름 저, 이를 저, 근본 저, 별이름 저
-저:伹:
 저:宁:조회 받는 곳 저, 멈출 저
 저:柢:뿌리 저
-저:筯:
 저:瀦:물 괼 저, 못 저, 웅덩이 저
 저:苴:암삼 저, 꾸러미 저, 대지팡이 저, 신바닥 저
-저:泞:
-저:葅:
-저:趄:
 저:杼:북 저, 도토리 저
 저:袛:속적삼 저
-저:翥:
 저:潴:瀦와 同字
 저:牴:찌를 저, 대강 저, 씨름 저, 당할 저
-저:竚:
-저:滁:
 저:蛆:구더기 저, 지네 저
 저:羝:숫양 저
 저:褚:주머니 저, 쌓을 저, 옷에 솜 둘 저
 저:豬:돼지 저, 물이 괼 저, 못이름 저
 저:罝:짐승 그물 저
-저:䃴:
 저:岨:돌산에 흙 덮일 저
 저:芧:
+저:陼:모래섬 저, 둔덕 저, 언덕 저
+저:伹:
+저:筯:
+저:泞:
+저:葅:
+저:趄:
+저:翥:
+저:竚:
+저:滁:
+저:䃴:
 저:眡:
 저:櫧:
 저:篨:
 저:贮:
 저:这:
 저:龃:
-저:陼:모래섬 저, 둔덕 저, 언덕 저
 저:仾:
 저:劯:
 저:唨:
 적:翟:꿩의 깃 적, 황후의 옷 적
 적:鏑:화살촉 적
 적:荻:갈대 적, 쑥 적
-적:踖:
-적:啇:
 적:糴:쌀 사들일 적, 빠를 적
 적:逖:멀 적
 적:覿:볼 적
 적:幘:
+적:磧:돌무더기 적, 모래벌 적
+적:樀:추녀 적, 도토마리 적, 방망이 적
+적:菂:연밥 적
+적:馰:별배기 적, 소태성 적
+적:踖:
+적:啇:
 적:篴:
 적:靮:
 적:廸:
-적:磧:돌무더기 적, 모래벌 적
 적:頔:
 적:苖:
 적:逷:
 적:籊:
 적:擿:
 적:讁:
-적:樀:추녀 적, 도토마리 적, 방망이 적
 적:墑:
 적:䟱:
 적:嚁:
 적:谪:
 적:贼:
 적:镝:
-적:菂:연밥 적
-적:馰:별배기 적, 소태성 적
 적:唙:
 적:啲:
 적:嘀:
 전:畑:화전 전, 밭 전
 전:靦:무안할 전, 물끄러미 볼 전
 전:牋:글 전, 표 전, 문체이름 전
-전:銭:
-전:烇:
 전:畋:사냥할 전
 전:腆:두터울 전, 지극할 전, 많이 차려놓을 전
-전:竱:
 전:顓:어리석을 전, 오로지 전
 전:翦:베어 없앨 전, 멸할 전
 전:戔:
 전:瑱:귀막이옥 전, 옥이름 전
 전:痊:병 나을 전
 전:湔:빨 전, 씻을 전, 물 번질 전
-전:瑑:
 전:縳:
 전:旃:기 전, 말 그칠 전
 전:躔:햇길 전, 별자리 전
 전:巓:산 꼭대기 전
-전:戦:
-전:跧:
-전:戬:
-전:笺:
 전:羶:노린내날 전
 전:荃:향풀 전, 전풀 전
-전:闐:
-전:剸:
 전:磚:벽돌 전, 기와 전
-전:填:
 전:戩:
 전:鸇:구진매 전
-전:氊:
 전:吮:빨 전
 전:甎:벽돌 전, 기와 전
-전:饘:
 전:邅:머뭇거릴 전
-전:㙉:
 전:囀:새 지저귈 전, 후렴 전
 전:飦:범벅 전, 된죽 전
+전:澶:물이름 전
+전:揃:가를 전, 자를 전, 가지런히 할 전
+전:栴:향나무 전
+전:屇:구멍 전
+전:餰:된죽 전
+전:鱣:전어 전
+전:槇:
+전:錪:솥 전, 쇠 전
+전:畠:밭 전
+전:籛:성씨 전
+전:膞:썰 전, 질그릇 만드는 틀 전
+전:輇:달 전, 잴 전
+전:嫥:아름다울 전
+전:癜:어루러기 전
+전:鄽:가게 전
+전:鋑:
+전:靛:푸른 대 전
+전:鬋:수염 깎을 전, 귀밑 털 드릴 전
+전:銭:
+전:烇:
+전:竱:
+전:瑑:
+전:戦:
+전:跧:
+전:戬:
+전:笺:
+전:闐:
+전:剸:
+전:填:
+전:氊:
+전:饘:
+전:㙉:
 전:橏:
 전:倎:
 전:纒:
 전:譾:
 전:顛:
 전:淟:
-전:澶:물이름 전
 전:沺:
-전:揃:가를 전, 자를 전, 가지런히 할 전
 전:搌:
 전:瘨:
 전:縓:
 전:謭:
-전:栴:향나무 전
 전:槙:
 전:滇:
-전:屇:구멍 전
-전:餰:된죽 전
-전:鱣:전어 전
 전:傎:
 전:瀍:
 전:牷:
-전:槇:
-전:錪:솥 전, 쇠 전
 전:拴:
 전:瑼:
 전:硂:
 전:窴:
 전:篿:
 전:䇳:
-전:畠:밭 전
-전:籛:성씨 전
-전:膞:썰 전, 질그릇 만드는 틀 전
-전:輇:달 전, 잴 전
 전:搷:
 전:晪:
 전:朘:
 전:鳣:
 전:鹯:
 전:䩄:
-전:嫥:아름다울 전
-전:癜:어루러기 전
-전:鄽:가게 전
-전:鋑:
-전:靛:푸른 대 전
-전:鬋:수염 깎을 전, 귀밑 털 드릴 전
 전:偂:
 전:厧:
 전:叀:
 절:癤:멍울 절, 부스럼 절
 절:窃:竊의 俗字
 절:軼:
-절:卩:병부
 절:晢:밝을 절, 비칠 절
-절:晣:
 절:岊:산 모퉁이 우뚝 내밀 절
+절:卩:병부
+절:晣:
 절:蕝:
 절:嶻:
 절:絕:
 점:岾:고개 점, 절이름 점
 점:鮎:메기 점
 점:玷:옥의 티 점, 흠각 점
-점:坫:
 점:覘:
 점:佔:엿볼 점, 숙일 점
 점:簟:삿자리 점, 대 이름 점
-점:阽:
 점:苫:이엉 점, 거적자리 점, 글씨 흘려 쓸 점
 점:墊:빠질 점, 축축할 점
-점:痁:
 점:黏:붙일 점, 풀 점
 점:颭:펄렁거릴 점
 점:蔪:풀 벨 점, 보리 팰 점
+점:笘:
+점:蛅:
+점:坫:
+점:阽:
+점:痁:
 점:扂:
 점:蒧:
 점:㸃:
 점:渐:
 점:觇:
 점:飐:
-점:笘:
-점:蛅:
 점:唸:
 점:嚸:
 점:奌:
 접:檝:
 접:蹀:저벅저벅 걸을 접
 접:跕:미끄러질 접
-접:艓:
 접:椄:나무 접붙일 접, 형벌틀 접, 문설주 접
+접:蜨:나비 접
+접:艓:
 접:褋:
 접:䐑:
 접:鲽:
-접:蜨:나비 접
 접:挕:
 접:擑:
 접:聑:
 정:湞:물이름 정
 정:鋌:화살촉 정, 달음박질할 정, 쇳덩이 정
 정:証:간할 정
+정:灯:
+정:筳:대쪽 정
+정:靚:단장할 정, 밝을 정
+정:酲:술병 정, 술 깰 정
+정:梃:외줄기 정, 막대 정, 꼿꼿할 정
+정:怔:황겁할 정, 가슴 두근두근할 정
+정:叮:단단히 부탁할 정, 정성스러울 정
+정:棖:문설주 정, 막대 정
+정:莛:풀 줄거리 정, 들보 정
+정:婷:아리따울 정, 쌀쌀할 정
+정:琤:
+정:珵:노리개 정, 패옥 정
+정:疔:헌데 정
+정:鋥:
+정:桯:서안 정, 걸상 정
+정:佂:두려워할 정
+정:婧:
+정:掟:둘러칠 정
+정:遉:순라군 정, 염탐할 정
 정:静:
 정:净:
 정:㝎:
 정:鞓:
-정:灯:
 정:浄:
 정:泟:
-정:筳:대쪽 정
 정:㫌:
-정:靚:단장할 정, 밝을 정
 정:埥:
-정:酲:술병 정, 술 깰 정
 정:頲:
-정:梃:외줄기 정, 막대 정, 꼿꼿할 정
 정:矴:
 정:侹:
 정:涏:
 정:飣:
 정:凈:
 정:阱:
-정:怔:황겁할 정, 가슴 두근두근할 정
 정:琔:
 정:赬:
-정:叮:단단히 부탁할 정, 정성스러울 정
-정:棖:문설주 정, 막대 정
-정:莛:풀 줄거리 정, 들보 정
-정:婷:아리따울 정, 쌀쌀할 정
 정:仃:
-정:琤:
 정:頳:
-정:珵:노리개 정, 패옥 정
 정:揁:
 정:裎:
-정:疔:헌데 정
-정:鋥:
 정:烶:
 정:脡:
 정:蜓:
 정:睜:
 정:誔:
 정:㵾:
-정:桯:서안 정, 걸상 정
 정:旍:
 정:椗:
 정:濎:
 정:顶:
 정:颋:
 정:饤:
-정:佂:두려워할 정
-정:婧:
-정:掟:둘러칠 정
-정:遉:순라군 정, 염탐할 정
 정:丼:
 정:侱:
 정:啨:
 제:齎:
 제:儕:동배 제
 제:躋:오를 제
-제:苐:
-제:剤:
-제:褆:
 제:擠:물리칠 제
-제:滛:
 제:隄:堤와 同字
 제:娣:여동생 제
 제:禔:복 제
+제:睇:흘끗 볼 제
+제:稊:강아지풀 제
+제:瑅:제당 제
+제:鯷:메기 제
+제:緹:붉은 비단 제
+제:踶:찰 제
+제:猘:미친개 제
+제:蹏:蹄와 同字
+제:韲:양념할 제
+제:鍗:큰 가마 제
+제:鮧:복 제
+제:苐:
+제:剤:
+제:褆:
+제:滛:
 제:斉:
 제:隮:
 제:磾:
 제:癠:
 제:穧:
 제:虀:
-제:睇:흘끗 볼 제
-제:稊:강아지풀 제
-제:瑅:제당 제
 제:穄:
 제:綈:
 제:鶗:
-제:鯷:메기 제
-제:緹:붉은 비단 제
-제:踶:찰 제
-제:猘:미친개 제
 제:嚌:
 제:淛:
 제:傺:
 제:鵜:
 제:渧:
 제:鞮:
-제:蹏:蹄와 同字
 제:嗁:
 제:懠:
-제:韲:양념할 제
 제:僀:
 제:泲:
 제:漈:
 제:鹈:
 제:齐:
 제:齑:
-제:鍗:큰 가마 제
-제:鮧:복 제
 제:亝:
 제:俤:
 제:厗:
 조:槽:구유 조, 마구 조
 조:晁:朝의 古字, 아침 조
 조:璪:면루관 드림 옥 조, 면류관드림옥 조
-조:条:
 조:噪:떠들썩할 조
 조:皁:하인 조
 조:祧:조묘 조
 조:徂:갈 조
-조:阼:
 조:胙:복 조
-조:皂:
 조:糶:쌀 내어 팔 조
 조:竈:부엌 조
 조:厝:措와 同字
-조:慥:
-조:脁:
-조:粜:
 조:刁:바라 조
 조:絛:
 조:譟:시끄러울 조
 조:鵰:수리 조
 조:澡:씻을 조
-조:罩:
-조:旐:
 조:蜩:매미 조
 조:殂:죽을 조
 조:鼂:朝와 同字
 조:臊:누릴 조
 조:嘈:지껄일 조
+조:佻:방정맞을 조
+조:琱:
+조:蔦:담쟁이 조
+조:銚:쟁개비 조
+조:糙:매조미쌀 조
+조:找:채울 조
+조:洮:
+조:誂:꾈 조
+조:傮:마칠 조
+조:嬥:날씬할 조
+조:懆:근심할 조
+조:笊:조리 조
+조:絩:견직물 날실 수 조
+조:艚:거룻배 조
+조:鈟:낚시 조
+조:鋽:불리지 않은 쇠 조
+조:鯛:도미 조
+조:条:
+조:阼:
+조:皂:
+조:慥:
+조:脁:
+조:粜:
+조:罩:
+조:旐:
 조:朓:
 조:啁:
 조:爼:
 조:窵:
-조:佻:방정맞을 조
-조:琱:
-조:蔦:담쟁이 조
 조:鯈:
-조:銚:쟁개비 조
 조:窱:
 조:螬:
-조:糙:매조미쌀 조
 조:曌:
 조:沠:
 조:珇:
 조:釂:
 조:駋:
 조:䆴:
-조:找:채울 조
-조:洮:
-조:誂:꾈 조
 조:晀:
 조:碉:
 조:竃:
 조:鲦:
 조:鲷:
 조:鸟:
-조:傮:마칠 조
-조:嬥:날씬할 조
-조:懆:근심할 조
-조:笊:조리 조
-조:絩:견직물 날실 수 조
-조:艚:거룻배 조
-조:鈟:낚시 조
-조:鋽:불리지 않은 쇠 조
-조:鯛:도미 조
 조:伄:
 조:刟:
 조:叼:
 족:簇:모일 족, 가는대 족
 족:鏃:화살촉 족
 족:蔟:
-족:哫:
 족:瘯:피부병 이름 족
+족:哫:
 족:镞:
 족:踿:
 족:㞺:
 족흔:足痕:
 존:存:있을 존
 존:尊:존귀할 존, 높을 존
-존:燇:
 존:拵:꽂을 존
 존:鐏:
+존:燇:
 존:橂:
 존:袸:
 존:銌:
 졸:拙:서툴 졸, 졸할 졸
 졸:猝:갑자기 졸
 졸:倅:
+졸:脺:
 졸:捽:
 졸:㐒:
-졸:脺:
 졸:稡:
 졸:椊:
 졸:踤:
 종:悰:즐길 종, 즐거울 종
 종:棕:종려나무 종
 종:倧:상고 신인 종, 옛적신인 종
-종:従:
 종:蹤:자취 종
-종:縦:
 종:瘇:수종 종
 종:螽:누리 종
-종:嵸:
 종:椶:棕과 同字
-종:騣:
 종:蓯:
+종:粽:주악 종
+종:伀:두려워할 종
+종:慒:생각할 종
+종:柊:방망이 종
+종:樅:전나무 종
+종:瑽:패옥소리 종
+종:従:
+종:縦:
+종:嵸:
+종:騣:
 종:蓗:
 종:鬃:
 종:賨:
 종:踨:
-종:粽:주악 종
 종:徖:
 종:忪:
-종:伀:두려워할 종
 종:倊:
 종:尰:
 종:朡:
 종:锺:
 종:骔:
 종:骙:
-종:慒:생각할 종
-종:柊:방망이 종
-종:樅:전나무 종
-종:瑽:패옥소리 종
 종:傱:
 종:刣:
 종:喠:
 좌:佐:도울 좌
 좌:座:자리 좌
 좌:挫:꺽을 좌, 꺾을 좌
-좌:㘴:
-좌:脞:
 좌:髽:북상투 좌
 좌:剉:꺽을 좌
 좌:莝:여물 좌
+좌:痤:뾰루지 좌
+좌:㘴:
+좌:脞:
 좌:袏:
 좌:锉:
-좌:痤:뾰루지 좌
 좌:侳:
 좌:咗:
 좌:夎:
 주:侏:난쟁이 주, 난장이 주
 주:枓:
 주:齟:
-주:厨:
 주:霔:장마 주
 주:肘:팔꿈치 주
-주:蹰:
 주:儔:무리 주
 주:拄:떠받칠 주
 주:裯:홑이불 주
 주:遒:다가설 주
 주:賙:진휼할 주
+주:輈:끌채 주
+주:侜:속일 주
+주:幬:휘장 주
+주:腠:살결 주
+주:迬:
+주:霌:운우 모양 주
+주:硃:주사 주
+주:蔟:태주 주
+주:尌:세울 주
+주:籒:주문 주
+주:蛀:나무좀 주
+주:詋:呪와 同字
+주:丟:갈 주
+주:趎:사람이름 주
+주:鉒:쇳돌 주
+주:鼄:거미 주
+주:厨:
+주:蹰:
 주:躕:
 주:譸:
 주:籀:
-주:輈:끌채 주
 주:黈:
 주:㴻:
 주:邾:
 주:紸:
 주:䛆:
 주:麈:
-주:侜:속일 주
-주:幬:휘장 주
-주:腠:살결 주
-주:迬:
-주:霌:운우 모양 주
 주:伷:
 주:噣:
 주:淍:
-주:硃:주사 주
 주:咮:
 주:晭:
 주:跦:
 주:㕑:
-주:蔟:태주 주
 주:椆:
 주:珘:
-주:尌:세울 주
 주:唒:
 주:妵:예쁠, 사람 이름
 주:揍:
 주:㕀:
-주:籒:주문 주
-주:蛀:나무좀 주
-주:詋:呪와 同字
 주:怞:
 주:楱:
 주:疰:
 주:驻:
 주:鸼:
 주:䌷:
-주:丟:갈 주
-주:趎:사람이름 주
-주:鉒:쇳돌 주
-주:鼄:거미 주
 주:丶:불똥
 주:厾:
 주:咒:
 준:寯:모일 준
 준:焌:굽을 준, 불땔 준
 준:罇:樽·尊과 同字
-준:凖:
 준:蹲:걸터앉을 준
 준:隼:새매 준
 준:餕:대궁 준
 준:撙:누를 준
-준:睃:
 준:惷:어수선할 준
-준:㕙:
 준:綧:피륙의 폭의 넓이 준
 준:噂:수군거릴 준
-준:䥴:
 준:踆:그칠 준
-준:䞭:
 준:皴:주름 준
+준:埻:과녘 준
+준:墫:樽·罇과 同字
+준:鐏:창고달 준
+준:鱒:송어 준
+준:鵔:금계 준
+준:凖:
+준:睃:
+준:㕙:
+준:䥴:
+준:䞭:
 준:踳:
 준:㑺:
 준:㻐:
 준:馂:
 준:骏:
 준:鳟:
-준:埻:과녘 준
-준:墫:樽·罇과 同字
-준:鐏:창고달 준
-준:鱒:송어 준
-준:鵔:금계 준
 준:偆:
 준:僔:
 준:壿:
 중:重:무거울 중
 중:衆:무리 중
 중:仲:버금 중
+중:眾:衆의 本字
 중:褈:
 중:众:
-중:眾:衆의 本字
 중:妕:
 중:媑:
 중:狆:
 즉:則:
 즉:卽:곧 즉
 즉:即:卽의 俗字
-즉:鯽:
 즉:喞:
+즉:鯽:
 즉:唧:
 즉:萴:
 즉:崱:
 즉흥적:卽興的:
 즐:櫛:빗 즐
 즐:騭:수말 즐
-즐:瀄:
 즐:喞:두런거릴 즐
+즐:瀄:
 즐:堲:
 즐:栉:
 즐:骘:
 즙:汁:즙 즙, 진액 즙
 즙:葺:기울 즙, 지붕일 즙
 즙:楫:노 즙, 돛대 즙
-즙:濈:
 즙:檝:楫과 同字
 즙:蕺:삼백초 즙
+즙:濈:
 즙:湒:
 즙:霵:
 즙고산경:緝古算經:
 증:甑:시루 증
 증:繒:비단 증
 증:証:
-증:曽:
 증:嶒:산 높고 험할 증
 증:矰:주살 증
+증:罾:어망 증
+증:曽:
 증:増:
 증:璔:
 증:橧:
 증:鄫:
 증:熷:
 증:驓:
-증:罾:어망 증
 증:䎖:
 증:缯:
 증:赠:
 지:芷:구리때 지, 백지 지
 지:蜘:거미 지
 지:墀:계단 위의 공지 지
-지:遅:
-지:㫖:
 지:秪:벼 처음 익을 지
-지:秖:
 지:躓:넘어질 지
 지:箎:
 지:舐:핥을 지
-지:祬:
-지:䘭:
-지:輊:
 지:踟:머뭇거릴 지
 지:篪:저 이름 지
 지:鷙:맹금 지
 지:榰:주춧돌 지
 지:坻:모래섬 지
-지:胝:
-지:鳷:
 지:扺:손바닥 지
 지:軹:굴대 머리 지
+지:泜:강 이름 지
+지:阯:터 지
+지:痣:사마귀 지
+지:鮨:젓갈 지
+지:遅:
+지:㫖:
+지:秖:
+지:祬:
+지:䘭:
+지:輊:
+지:胝:
+지:鳷:
 지:帋:
 지:䑛:
-지:泜:강 이름 지
 지:搘:
 지:蚳:
-지:阯:터 지
 지:厎:
 지:墬:
 지:鋕:
 지:驇:
-지:痣:사마귀 지
 지:彽:
 지:恉:
 지:抧:
 지:轾:
 지:迟:
 지:鸷:
-지:鮨:젓갈 지
 지:俧:
 지:倁:
 지:凪:
 직:織:짤 직
 직:稷:기장 직, 메기장 직
 직:稙:올벼 직
+직:禝:사람 이름 직
 직:溭:
 직:㮨:
-직:禝:사람 이름 직
 직:聀:
 직:犆:
 직:樴:
 진:溱:많을 진, 성할 진
 진:桭:평고대 진, 대청 진
 진:蔯:더워지기 진, 사철쑥 진
-진:真:
 진:趁:좇을 진
-진:禛:
-진:鎮:
 진:儘:盡과 同字
 진:瑱:
-진:趂:
 진:稹:떨기로 날 진
+진:蓁:우거질 진
+진:珒:옥 이름 진
+진:鬒:숱 많을 진
+진:侲:동자 진
+진:鉁:보배 진
+진:螴:설렐 진
+진:真:
+진:禛:
+진:鎮:
+진:趂:
 진:疢:
 진:眹:
 진:胗:
 진:䫃:
-진:蓁:우거질 진
 진:溍:
 진:珎:
-진:珒:옥 이름 진
 진:姫:
-진:鬒:숱 많을 진
-진:侲:동자 진
-진:鉁:보배 진
 진:敶:
 진:榗:
 진:眕:
 진:镇:
 진:阵:
 진:陈:
-진:螴:설렐 진
 진:侭:
 진:嗪:
 진:嚍:
 질:蛭:거머리 질
 질:瓆:사람 이름 질
 질:絰:질 질
-질:耋:
 질:軼:
 질:躓:
-질:晊:
 질:騭:
 질:垤:개밋둑 질
-질:抶:
-질:銍:
-질:袠:
 질:郅:고을 이름 질
 질:鑕:모루 질
 질:蒺:납가새 질
+질:咥:
+질:耋:
+질:晊:
+질:抶:
+질:銍:
+질:袠:
 질:瓞:
 질:袟:
 질:礩:
 질:祑:
-질:咥:
 질:昳:
 질:翐:
 질:挃:
 짐:朕:나 짐
 짐:斟:술 따를 짐, 짐작할 짐
 짐:鴆:짐새 짐
-짐:酙:
 짐:酖:
+짐:酙:
 짐:㯢:
 짐:鸩:
 짐:栚:
 집:潗:샘솟을 집, 물끓을 집
 집:鏶:판금 집, 쇳조각 집
 집:戢:그칠 집
+집:咠:참소할 집
 집:諿:
 집:縶:
 집:㠍:
 집:慹:
-집:咠:참소할 집
 집:㙫:
 집:㠎:
 집:䌖:
 징:懲:혼날 징, 징계할 징
 징:澄:맑을 징
 징:澂:澄과 同字
-징:徴:
 징:瀓:맑을 징
-징:憕:
 징:瞪:바로 볼 징
-징:惩:
 징:癥:적취 징
+징:徴:
+징:憕:
+징:惩:
 징:㠞:
 징개:懲改:
 징거:徵據:
 차:侘:실의할 차, 자랑할 차
 차:槎:뗏목 차
 차:苴:
+차:瑳:깨끗할 차
+차:佽:도울 차
+차:奓:오만할 차
+차:硨:조개 이름 차
+차:岔:갈림길 차
+차:偖:찢을 차
+차:徣:빌릴 차
 차:姹:
 차:䂨:
 차:劄:
 차:汊:
 차:杈:
 차:莗:
-차:瑳:깨끗할 차
 차:唶:
 차:扯:
-차:佽:도울 차
 차:撦:
-차:奓:오만할 차
-차:硨:조개 이름 차
 차:鹺:
-차:岔:갈림길 차
 차:挓:
 차:訍:
 차:跐:
 차:舣:
 차:车:
 차:鹾:
-차:偖:찢을 차
-차:徣:빌릴 차
 차:佌:
 차:偧:
 차:偨:
 착:窄:좁을 착, 끼일 착
 착:齪:악착할 착, 악착같을 착
 착:斲:깎을 착
-착:斵:
 착:戳:창으로 찌를 착
+착:擉:찌를 착
+착:斵:
 착:斮:
 착:諑:
 착:娖:
 착:浞:
-착:擉:찌를 착
 착:笮:
 착:娕:
 착:珿:
 찬:粲:정미 찬, 정한 쌀밥 찬
 찬:飡:
 찬:澯:맑을 찬
-찬:賛:
-찬:湌:
 찬:攢:모일 찬
-찬:纉:
 찬:爨:불땔 찬
+찬:賛:
 찬:欑:모일 찬
-찬:㸑:
 찬:巑:높이 솟을 찬
+찬:趲:놀라 흩어질 찬
+찬:儧:모일 찬
+찬:儹:모을 찬
+찬:劗:끊을 찬
+찬:湌:
+찬:纉:
+찬:㸑:
 찬:攅:
 찬:讃:
 찬:酇:
-찬:趲:놀라 흩어질 찬
 찬:篡:
 찬:濽:
 찬:穳:
 찬:鑚:
-찬:儧:모일 찬
 찬:瓉:
 찬:禶:
-찬:儹:모을 찬
 찬:攛:
 찬:灒:
 찬:籫:
 찬:酂:
 찬:镩:
 찬:馔:
-찬:劗:끊을 찬
 찬:儏:
 찬:囋:
 찬:殩:
 찰:札:패 찰, 편지 찰
 찰:擦:뿌릴 찰, 문지를 찰
 찰:紮:감을 찰, 묶을 찰
-찰:咱:
 찰:扎:뺄 찰
 찰:拶:핍박할 찰
+찰:咱:
 찰:哳:
 찰:巀:
 찰:剎:
 참:塹:구덩이 참
 참:懺:뉘우칠 참
 참:叅:의논할 참
-참:参:
-참:惨:
 참:慚:부끄러울 참
 참:驂:곁마 참
 참:譖:참소할 참
-참:僣:
 참:黲:검푸르죽죽할 참
-참:㕘:
 참:巉:가파를 참
 참:嶄:높을 참
 참:槧:판 참
-참:叁:
 참:鑱:보습 참
 참:憯:슬퍼할 참
 참:摻:
-참:叄:
 참:攙:찌를 참
 참:饞:탐할 참
-참:旵:
 참:欃:살별 참
-참:䜛:
 참:儳:어긋날 참
+참:毚:토끼 참
+참:鏨:끌 참
+참:参:
+참:惨:
+참:僣:
+참:㕘:
+참:叁:
+참:叄:
+참:旵:
+참:䜛:
 참:墋:
 참:謲:
 참:懴:
 참:馋:
 참:骖:
 참:黪:
-참:毚:토끼 참
-참:鏨:끌 참
 참:傪:
 참:嚵:
 참:壍:
 창:艙:선창 창
 창:悵:슬퍼할 창
 창:搶:닿을 창
-창:囱:
 창:鬯:술
 창:刱:비롯할 창
-창:牕:
 창:倀:미칠 창
 창:蹌:추창할 창
 창:鎗:
 창:氅:새털 창
 창:惝:멍할 창
 창:窻:창 창
-창:淐:
 창:憃:
-창:摐:
-창:剏:
-창:剙:
-창:牎:
 창:傖:천할 창
 창:鏦:
 창:窗:창 창
-창:畼:
 창:瑲:옥 소리 창
 창:鋹:
 창:鶬:
+창:凔:찰 창
+창:戧:다칠 창
+창:錆:
+창:椙:
+창:囱:
+창:牕:
+창:淐:
+창:摐:
+창:剏:
+창:剙:
+창:牎:
+창:畼:
 창:瑒:
 창:篬:
 창:厰:
 창:阊:
 창:鲳:
 창:鸧:
-창:凔:찰 창
-창:戧:다칠 창
-창:錆:
-창:椙:
 창:仺:
 창:僘:
 창:刅:
 채:釵:비녀 채
 채:寀:녹봉 채, 동관 채
 채:砦:울타리 채, 울타리칠 채
+채:茝:구리때 채
+채:棌:참나무 채
 채:瘵:
 채:蠆:
-채:茝:구리때 채
 채:瘥:
-채:棌:참나무 채
 채:倸:
 채:囆:
 채:债:
 책:策:채찍 책, 꾀 책
 책:柵:울짱 책, 우리 책
 책:翟:꿩 책
-책:栅:
 책:簀:살평상 책
-책:册:
 책:嘖:외칠 책
 책:磔:찢을 책
 책:幘:건 책
+책:笧:책 상자 책
+책:蚱:벼메뚜기 책
+책:栅:
+책:册:
 책:筞:
 책:䇿:
 책:㥽:
 책:帻:
 책:箦:
 책:责:
-책:笧:책 상자 책
-책:蚱:벼메뚜기 책
 책:厇:
 책:嫧:
 책:憡:
 처:妻:아내 처
 처:悽:슬퍼할 처
 처:凄:쓸쓸할 처
-처:䖏:
 처:萋:풀 성하게 우거진 모양 처
-처:处:
-처:処:
 처:淒:쓸쓸할 처
-처:覰:
 처:覷:엿볼 처
-처:觑:
 처:褄:깃의 가 처
 처:郪:고을 이름 처
+처:䖏:
+처:处:
+처:処:
+처:覰:
+처:觑:
 처:刞:
 처:竌:
 처:紪:
 척:剔:바를 척, 없앨 척
 척:蹠:밟을 척, 뛸 척
 척:惕:두려워할 척
-척:褁:
 척:跖:발바닥 척
-척:慼:
 척:摭:주울 척
 척:躑:머뭇거릴 척
-척:蹐:
 척:俶:시작할 척
+척:蜴:도마뱀 척
+척:塉:메마른 땅 척
+척:捗:
+척:呎:길이 단위 척
+척:坧:기지 척
+척:褁:
+척:慼:
+척:蹐:
 척:掦:
 척:鶺:
-척:蜴:도마뱀 척
 척:隲:
-척:塉:메마른 땅 척
 척:蹢:
 척:踢:
 척:墄:
-척:捗:
 척:墌:
 척:鼜:
 척:掷:
 척:涤:
 척:踯:
 척:鹡:
-척:呎:길이 단위 척
-척:坧:기지 척
 척:傶:
 척:叺:
 척:嵴:
 천:蚕:지렁이 천
 천:荐:거듭할 천
 천:倩:예쁠 천
-천:迁:
-천:遄:
 천:濺:흩뿌릴 천
 천:洊:이를 천
 천:蕆:경계할 천
-천:刋:
 천:蒨:대가 우거질 천
-천:燀:
 천:茜:
-천:賎:
 천:芊:풀 무성할 천
+천:俴:엷을 천
+천:儃:머뭇거릴 천
+천:辿:천천히 걸을 천
+천:祆:하늘 천
+천:僢:어그러질 천
+천:瓩:킬로그램 천
+천:粁:킬로메트르 천
+천:臶:거듭 천
+천:靝:하늘 천
+천:迁:
+천:遄:
+천:刋:
+천:燀:
+천:賎:
 천:栫:
 천:韉:
-천:俴:엷을 천
 천:拪:
 천:剶:
 천:奷:
 천:荈:
-천:儃:머뭇거릴 천
-천:辿:천천히 걸을 천
 천:梴:
 천:棈:
 천:洤:
 천:浅:
 천:践:
 천:钎:
-천:祆:하늘 천
 천:冁:
 천:忏:
 천:扦:
 천:阐:
 천:鞯:
 천:鳈:
-천:僢:어그러질 천
-천:瓩:킬로그램 천
-천:粁:킬로메트르 천
-천:臶:거듭 천
-천:靝:하늘 천
 천:侟:
 천:兛:
 천:兲:
 철:綴:꿰맬 철, 맺을 철
 철:凸:볼록할 철, 뾰족할 철
 철:輟:그칠 철
-철:鉄:
 철:銕:鐵의 古字
 철:掇:주울 철
 철:啜:마실 철
-철:腏:
-철:鐡:
 철:惙:근심할 철
-철:畷:
 철:餮:탐할 철
-철:䮕:
 철:歠:마실 철
 철:剟:깎을 철
+철:埑:밝을 철
+철:錣:물미 철
+철:飻:탐할 철
+철:鉄:
+철:腏:
+철:鐡:
+철:畷:
+철:䮕:
 철:醊:
 철:㯙:
 철:悊:
 철:辙:
 철:铁:
 철:锇:
-철:埑:밝을 철
-철:錣:물미 철
-철:飻:탐할 철
 철:勶:
 철:叕:
 철:啠:
 첨:甛:달 첨, 단 첨
 첨:忝:더럽힐 첨
 첨:簷:처마 첨
-첨:甜:
 첨:憸:
 첨:檐:처마 첨
 첨:槧:편지 첨
 첨:襜:행주치마 첨
+첨:栝:
+첨:惉:팰 첨
+첨:瀸:적실 첨
+첨:幨:휘장 첨
+첨:櫼:쐐기 첨
+첨:甜:
 첨:韂:
 첨:籖:
-첨:栝:
 첨:悿:
 첨:湉:
 첨:掭:
-첨:惉:팰 첨
 첨:沗:
 첨:裧:
-첨:瀸:적실 첨
 첨:冿:
 첨:噡:
 첨:婖:
 첨:裣:
 첨:谄:
 첨:锘:
-첨:幨:휘장 첨
-첨:櫼:쐐기 첨
 첨:厃:
 첨:嶦:
 첨:敁:
 첩:堞:성가퀴 첩, 담 첩
 첩:睫:속눈썹 첩, 속눈섭 첩
 첩:褶:덧옷 첩, 겹옷 첩
-첩:輙:
 첩:喋:재잘거릴 첩
 첩:鰈:
 첩:怗:고요할 첩
-첩:㡇:
 첩:褺:겹옷 첩
+첩:倢:빠를 첩
+첩:呫:맛 볼 첩, 귀에 대고 소근거릴 첩, 앙징할 첩
+첩:輙:
+첩:㡇:
 첩:疂:
 첩:倿:
 첩:氎:
 첩:谍:
 첩:贴:
 첩:辄:
-첩:倢:빠를 첩
-첩:呫:맛 볼 첩, 귀에 대고 소근거릴 첩, 앙징할 첩
 첩:偼:
 첩:媫:
 첩:崨:
 청:廳:관청 청
 청:菁:부추꽃 청, 초목무성한 모양 청
 청:鯖:청어 청
-청:青:
 청:倩:
-청:清:
 청:听:
-청:㕔:
-청:聼:
 청:凊:서늘할 청
 청:圊:뒷간 청
+청:婧:
+청:蜻:귀뚜라미 청
+청:鶄:교청새 청
+청:青:
+청:清:
+청:㕔:
+청:聼:
 청:聴:
 청:廰:
 청:厅:
 청:请:
 청:鲭:
 청:䴖:
-청:婧:
-청:蜻:귀뚜라미 청
-청:鶄:교청새 청
 청:厛:
 청:夝:
 청:掅:
 체:剃:머리 깎을 체, 머리깍을 체
 체:体:몸 체
 체:軆:몸 체
-체:遆:
-체:滞:
-체:逓:
-체:禘:
 체:砌:섬돌 체
-체:掣:
 체:棣:산앵두나무 체
 체:彘:돼지 체
 체:泚:
 체:蕞:
 체:蔕:작은 가시 체
-체:遰:
 체:薙:
+체:蒂:작은 가시 체
+체:殢:나른할 체
+체:靆:구름 낄 체
+체:嚏:재채기 할 체
+체:髰:
+체:遆:
+체:滞:
+체:逓:
+체:禘:
+체:掣:
+체:遰:
 체:杕:
 체:躰:
 체:髢:
 체:疐:
 체:蝃:
 체:䙗:
-체:蒂:작은 가시 체
 체:嵽:
 체:螮:
-체:殢:나른할 체
-체:靆:구름 낄 체
 체:餟:
 체:屜:
 체:懘:
 체:递:
 체:䗖:
 체:䴘:
-체:嚏:재채기 할 체
-체:髰:
 체:叇:
 체:嚔:
 체:墆:
 초:噍:먹을 초
 초:岧:산이 높을 초
 초:踔:
-초:椘:
 초:燋:홰 초
 초:鷦:뱁새 초
 초:顦:야윌 초
 초:劭:
 초:俏:
-초:䎐:
 초:趠:멀 초
-초:憷:
 초:僬:밝게 살필 초
 초:嶕:높을 초
 초:鍬:가래 초
+초:偢:얼이 빠져 있을 초
+초:隹:
+초:嫶:수척할 초
+초:耖:밭 거듭 갈 초
+초:鍫:가래 초
+초:齠:이를 갈 초
+초:椘:
+초:䎐:
+초:憷:
 초:岹:
 초:弨:
 초:撨:
 초:眧:
-초:偢:얼이 빠져 있을 초
-초:隹:
 초:檚:
 초:膲:
 초:芀:
 초:锹:
 초:鹪:
 초:龆:
-초:嫶:수척할 초
-초:耖:밭 거듭 갈 초
-초:鍫:가래 초
-초:齠:이를 갈 초
 초:仦:
 초:仯:
 초:僺:
 촉:囑:부탁할 촉
 촉:矗:곧을 촉, 우뚝 솟을 촉, 우뚝할 촉
 촉:鏃:
-촉:嘱:
 촉:躅:자취 촉, 강동강동 뛸 촉, 철쭉꽃 촉
-촉:瞩:
 촉:矚:볼 촉
 촉:髑:해골 촉
+촉:爥:비칠 촉
+촉:曯:비칠 촉
+촉:薥:촉규화 촉, 자귀밥 촉
+촉:嘱:
+촉:瞩:
 촉:斸:
 촉:瘃:
 촉:蠋:
-촉:爥:비칠 촉
 촉:劚:
-촉:曯:비칠 촉
 촉:歜:
 촉:灟:
 촉:触:
 촉:烛:
 촉:㔉:
-촉:薥:촉규화 촉, 자귀밥 촉
 촉:亍:
 촉:孎:
 촉:斶:
 촌:村:마을 촌, 밭집 촌, 시골 촌
 촌:忖:헤아릴 촌, 짐작할 촌
 촌:邨:村과 同字, 마을 촌
-촌:刌:
 촌:吋:인치(inch) 촌
+촌:刌:
 촌:屗:
 촌:澊:
 촌:籿:
 총:蔥:파 총, 파 뿌리 총, 푸를 총
 총:憁:바쁠
 총:葱:풀 더북할 총
+총:驄:총이말 총
+총:蓯:풀 더북할 총
+총:鏦:창 총, 찌를 총
+총:騘:驄과 同字
 총:冢:
 총:捴:
 총:総:
 총:匆:
 총:偬:
 총:漎:
-총:驄:총이말 총
 총:怱:
 총:緫:
 총:聦:
 총:傯:
-총:蓯:풀 더북할 총
 총:棇:
 총:潨:
 총:聡:
-총:鏦:창 총, 찌를 총
-총:騘:驄과 同字
 총:忩:
 총:璁:
 총:藂:
 최:璀:옥빛 찬란할 최, 구슬 주렁주렁 달릴 최
 최:漼:깊을 최, 고을 최, 눈물 줄줄 흘릴 최, 눈서리 쌓일 최
 최:縗:상복 최, 상옷 최
-최:㝡:
-최:嗺:
 최:脧:
 최:嘬:물 최, 산적 한 입에 넣을 최
 최:磪:험하고 높을 최
+최:㝡:
+최:嗺:
 최:墔:
 최:慛:
 최:槯:
 추:麤:성길 추, 클 추, 거칠 추
 추:蒭:芻와 同字
 추:瘳:병 나을 추, 덜릴 추
-추:趍:
 추:惆:실심할 추, 섭섭할 추
 추:簉:버금 추, 가지런히 날 추
 추:陬:벼루 추, 정월 추, 부끄러울 추, 마을 추
 추:啾:두런거릴 추, 찍찍거릴 추
 추:愀:
 추:箒:비 추
-추:篘:
 추:搥:북 칠 추
 추:帚:비 추, 털 추
 추:鞦:그네 추, 말고들개 추
 추:捶:종아리 칠 추, 짓찧을 추
 추:縋:줄에 달릴 추
 추:魋:북상투 추
-추:鯫:
-추:麁:
 추:娵:젊을 추, 물고기 추, 예쁜 여자 추
-추:萑:
 추:騅:청부루말 추
 추:鰌:미꾸라지 추, 빙자할 추, 해추 추
-추:崷:
-추:橻:
-추:鄹:
-추:㨨:
 추:縐:주름 추, 구길 추
 추:鍬:
 추:鶖:두루미 추
 추:鶵:
-추:寉:
-추:棰:
-추:菆:
 추:妯:
 추:蝤:
 추:隹:새 추
+추:揫:묶을 추, 거둘 추, 모을 추
+추:鵻:아롱비둘기 추
+추:麄:
+추:龝:秋의 古字
+추:趍:
+추:篘:
+추:鯫:
+추:麁:
+추:萑:
+추:崷:
+추:橻:
+추:鄹:
+추:㨨:
+추:寉:
+추:棰:
+추:菆:
 추:揂:
 추:棷:
 추:煼:
 추:鳅:
 추:鹙:
 추:䝙:
-추:揫:묶을 추, 거둘 추, 모을 추
-추:鵻:아롱비둘기 추
-추:麄:
-추:龝:秋의 古字
 추:侴:
 추:僽:
 추:吜:
 축:蹙:찡그릴 축, 쭈그러질 축
 축:筑:비파 축
 축:竺:나라이름 축
-축:踧:
-축:柷:
 축:舳:고물 축, 배 꼬리 축
 축:蹜:발 끌어 디딜 축
-축:滀:
 축:豖:발 얽은 돼지걸음 축
-축:拀:
 축:槭:단풍나무 축
-축:閦:
 축:妯:동서 축
+축:鼀:두꺼비 축
+축:踧:
+축:柷:
+축:滀:
+축:拀:
+축:閦:
 축:笁:
 축:蓫:
 축:䠞:
 축:缩:
 축:轴:
-축:鼀:두꺼비 축
 축:丒:
 축:傗:
 축:嘼:
 출:出:날 출, 게울 출, 도망할 출, 보일 출, 낳을 출, 물러갈 출, 생질 출
 출:黜:내칠 출, 물리칠 출
 출:朮:삽주뿌리 출
+출:秫:차조 출
 출:术:
 출:怵:
 출:絀:
-출:秫:차조 출
 출:岀:
 출:础:
 출:绌:
 충:沖:깊을 충, 온화할 충, 어릴 충
 충:冲:깊을 충, 온화할 충, 어릴 충
 충:虫:벌레 충
-충:种:
 충:忡:근심할 충
+충:珫:
+충:艟:
+충:种:
 충:䖝:
 충:翀:
 충:盅:
-충:珫:
-충:艟:
 충:揰:
 충:浺:
 충:漴:
 췌:揣:
 췌:惴:두려워할 췌
 췌:顇:
-췌:赘:
 췌:疩:
+췌:赘:
 췌:忰:
 췌객:贅客:
 췌거:贅居:
 취:鷲:독수리 취
 취:嘴:부리 취
 취:揣:잴 취, 시험할 취, 요량할 취
-취:酔:
 취:觜:부리 취
 취:毳:솜털 취, 연하고 부드러울 취
+취:冣:쌓을 취, 모을 취
+취:橇:
+취:酔:
 취:竁:
 취:翆:
 취:骤:
 취:鹫:
-취:冣:쌓을 취, 모을 취
-취:橇:
 취:噿:
 취:嶉:
 취:槜:
 치:梔:치자 치
 치:淄:물이름 치, 검을 치
 치:輜:짐수레 치, 휘장 친 수레 치
-치:耻:
 치:寘:둘 치, 폐할 치, 쉴 치
 치:鴟:솔개 치, 수알치 치, 부엉이 치, 말똥구리 치, 토란 치, 마음대로 날릴 치, 올빼미 치
 치:螭:
 치:廁:뒷간 치, 평상 가장자리 치, 섞일 치, 버금 치
 치:巵:잔 치, 연지 치
-치:歯:
-치:懥:
 치:菑:따비밭 치
 치:錙:저울눈 치, 조금 치
-치:䐉:
 치:褫:옷 빼앗을 치, 벗을 치, 넋 잃을 치
 치:豸:발 없는 벌레 치, 풀 치, 해치양 치, 발없는벌레의총칭 치
 치:絺:가는 칡베 치, 가는 갈포 치
-치:媸:
 치:薙:풀 깎을 치
-치:夂:뒤처져오다
-치:偫:
 치:哆:입 딱 벌일 치
 치:畤:제터 치
-치:眵:
 치:卮:술잔 치, 연지 치
 치:鵄:솔개 치
+치:跱:머뭇거릴 치, 주저할 치, 갖출 치
+치:阤:떨어질 치, 헐릴 치, 언덕 치, 사태날 치
+치:黐:
+치:痓:풍병 치, 악할 치
+치:鯔:숭어 치
+치:鴙:雉와 同字
+치:耻:
+치:歯:
+치:懥:
+치:䐉:
+치:媸:
+치:夂:뒤처져오다
+치:偫:
+치:眵:
 치:稺:
 치:觶:
 치:乿:
 치:廌:
-치:跱:머뭇거릴 치, 주저할 치, 갖출 치
 치:值:
 치:椔:
 치:歭:
 치:騺:
 치:㨖:
 치:㱀:
-치:阤:떨어질 치, 헐릴 치, 언덕 치, 사태날 치
-치:黐:
 치:庤:
 치:滍:
 치:瓻:
 치:鲻:
 치:鸱:
 치:齿:
-치:痓:풍병 치, 악할 치
-치:鯔:숭어 치
-치:鴙:雉와 同字
 치:俿:
 치:傂:
 치:卶:
 칙:則:법칙 칙, 본받을 칙, 모범 칙, 조목 칙
 칙:勅:신칙할 칙, 칙령 칙
 칙:飭:갖출 칙, 닦을 칙, 부지런할 칙
+칙:敕:경계할 칙, 다스릴 칙, 삼갈 칙, 바를 칙, 칙서 칙, 기릴 칙, 신칙할 칙
 칙:恜:
 칙:侙:
-칙:敕:경계할 칙, 다스릴 칙, 삼갈 칙, 바를 칙, 칙서 칙, 기릴 칙, 신칙할 칙
 칙:慗:
 칙:遫:
 칙:鶒:
 친:親:사랑할 친, 친할 친, 몸소 친, 일가 친, 사돈 친
 친:襯:속옷 친, 접근할 친, 베풀 친
 친:櫬:관 친, 무궁화나무 친, 땔나무 친
+친:齔:이 갈 친, 어릴 친
+친:藽:
 친:嚫:
 친:瀙:
 친:䞋:
 친:榇:
 친:衬:
 친:龀:
-친:齔:이 갈 친, 어릴 친
-친:藽:
 친:儬:
 친:媇:
 친:寴:
 침:琛:보배 침
 침:諶:
 침:忱:믿을 침, 정성 침
-침:祲:
 침:沉:沈의 俗字
 침:駸:말 몰아 달릴 침
 침:鋟:새길 침
 침:寖:젖을 침, 점점 침
 침:梣:
 침:椹:모탕 침, 도끼바탕 침, 토막 침
+침:郴:땅이름 침
+침:祲:
 침:碪:
 침:伔:
 침:寑:
 침:针:
 침:锓:
 침:骎:
-침:郴:땅이름 침
 침:兓:
 침:唚:
 침:埐:
 쾌:快:기분이 좋을 쾌, 시원할 쾌, 빠를 쾌, 쾌할 쾌
 쾌:獪:간교할 쾌, 교활할 쾌
 쾌:夬:결단할 쾌, 나누어 정할 쾌, 괘 이름 쾌
-쾌:儈:
 쾌:噲:목구멍 쾌, 훨할 쾌
+쾌:儈:
 쾌:侩:
 쾌:哙:
 쾌:叏:
 타:咤:꾸짖을 타, 슬플 타, 뿜을 타, 쩍쩍 씹는소리 타
 타:拖:拕와 同字, 당길 타
 타:迤:어정거릴 타
-타:堕:
 타:駄:馱의 俗字
-타:陁:
 타:躱:피할 타
 타:沱:물이 갈래질 타, 큰 비 타, 눈물이 흐를 타
-타:它:
 타:詑:
 타:跎:미끄러질 타
 타:詫:자랑할 타, 풍칠 타, 신통할 타
 타:佗:다를 타, 저 타, 마음에 든든할 타, 더할 타, 입을 타, 짊어질 타
-타:吒:
 타:鼉:자라 타
 타:駞:駞와 同字
-타:酡:
 타:柁:키 타
+타:拕:끌 타, 당길 타
+타:橢:둥글길죽할 타, 수레통 가운데그릇 타, 길죽한 그릇 타
+타:鮀:모래무지 타
+타:垞:
+타:阤:
+타:坨:
+타:驒:
+타:鴕:타조 타
+타:堕:
+타:陁:
+타:它:
+타:吒:
+타:酡:
 타:嚲:
 타:㙐:
-타:拕:끌 타, 당길 타
 타:垜:
 타:咜:
 타:奼:
-타:橢:둥글길죽할 타, 수레통 가운데그릇 타, 길죽한 그릇 타
-타:鮀:모래무지 타
 타:沲:
-타:垞:
-타:阤:
 타:媠:
 타:嶞:
 타:朵:
 타:驼:
 타:鸵:
 타:鼍:
-타:坨:
-타:驒:
-타:鴕:타조 타
 타:刴:
 타:剁:
 타:咃:
 탁:琸:사람이름 탁
 탁:拆:터질 탁, 찢어질 탁, 열릴 탁
 탁:橐:전대 탁, 자루 탁, 도가니 탁, 공잇소리 탁, 짐승이름 탁
-탁:乇:
-탁:槖:
 탁:涿:물방울 떨어질 탁, 칠 탁, 물이름 탁, 땅이름 탁
 탁:逴:멀 탁, 절름거릴 탁, 뛰어날 탁
 탁:籜:대 껍질 탁
 탁:踔:우뚝 설 탁, 앙감질 탁
-탁:椓:
-탁:侂:
 탁:趠:
-탁:跅:
-탁:魠:
 탁:沰:떨어뜨릴 탁, 돌 던질 탁, 떨어질 탁
 탁:矺:나무이름 탁
 탁:蘀:떨어질 탁, 마를 탁
+탁:乇:
+탁:槖:
+탁:椓:
+탁:侂:
+탁:跅:
+탁:魠:
 탁:仛:
 탁:斀:
 탁:杔:
 탄:坦:너그러울 탄, 평평할 탄, 넓을 탄
 탄:嘆:한숨쉴 탄, 탄식할 탄
 탄:殫:다할 탄
+탄:癱:중풍증 탄, 사지 틀릴 탄
+탄:攤:열 탄, 펼칠 탄
+탄:憻:坦과 同字
+탄:驒:돈짝무늬총이말 탄
 탄:惮:
 탄:殚:
 탄:弹:
 탄:吞:
-탄:癱:중풍증 탄, 사지 틀릴 탄
-탄:攤:열 탄, 펼칠 탄
 탄:瘓:
 탄:撣:
 탄:僤:
 탄:瘫:
 탄:绽:
 탄:诞:
-탄:憻:坦과 同字
-탄:驒:돈짝무늬총이말 탄
 탄:怹:
 탄:擹:
 탄:暺:
 탄흔:彈痕:
 탈:脫:벗어날 탈, 간략할 탈, 뼈 바를 탈, 그르칠 탈, 벗을 탈
 탈:奪:빼앗을 탈, 잃어버릴 탈, 좁은 길 탈, 깎을 탈
+탈:侻:간사할 탈, 가벼울 탈, 간략할 탈
 탈:梲:
 탈:敓:
-탈:侻:간사할 탈, 가벼울 탈, 간략할 탈
 탈:夺:
 탈:捝:
 탈:脱:
 탐:貪:탐할 탐, 욕심낼 탐
 탐:耽:즐길 탐, 귀 축 늘어질 탐, 웅크리고 볼 탐, 즐거울 탐, 깊고 멀 탐
 탐:眈:노려볼 탐, 즐길 탐
+탐:酖:술 즐길 탐
+탐:嗿:여럿이 먹는 소리 탐
+탐:忐:
 탐:醓:
 탐:撢:
-탐:酖:술 즐길 탐
 탐:躭:
 탐:贪:
 탐:赕:
-탐:嗿:여럿이 먹는 소리 탐
-탐:忐:
 탐:僋:
 탐:沊:
 탐:賧:
 탑:塔:탑 탑
 탑:搭:모뜰 탑, 박을 탑, 탈 탑
 탑:榻:평상 탑, 모직 탑, 자리 탑
-탑:闒:
 탑:鰈:
 탑:搨:비문 박을 탑, 베낄 탑
 탑:塌:낮은 땅 탑, 초벌갈 탑, 떨어질 탑
+탑:傝:답답할 탑, 불안할 탑, 어리석을 탑, 용렬할 탑
+탑:闒:
 탑:嗒:
 탑:撘:
 탑:漯:
 탑:㗳:
 탑:阘:
 탑:鳎:
-탑:傝:답답할 탑, 불안할 탑, 어리석을 탑, 용렬할 탑
 탑:嚃:
 탑:墖:
 탑:毾:
 탕:宕:골집 탕, 방탕할 탕, 석수 탕
 탕:帑:나라 곳집 탕, 처자식 탕
 탕:盪:씻을 탕, 움직일 탕, 진동할 탕, 그릇 부실 탕, 뭍 배질할 탕
-탕:逿:
 탕:碭:무늬진 돌 탕, 흰 기운 탕, 넘칠 탕, 산이름 탕
+탕:蘯:盪과 同字
+탕:燙:씻을 탕, 불에 델 탕
+탕:逿:
 탕:簜:
 탕:蝪:
 탕:踼:
-탕:蘯:盪과 同字
 탕:璗:
 탕:鐋:
 탕:荡:
 탕:烫:
 탕:砀:
 탕:铴:
-탕:燙:씻을 탕, 불에 델 탕
 탕:偒:
 탕:圵:
 탕:婸:
 태:汰:미끄러울 태, 넘칠 태, 씻길 태, 사치할 태, 미끄러질 태
 태:苔:이끼 태
 태:笞:볼기칠 태
-태:呆:
 태:邰:태나라 태
+태:呆:
 태:駄:
 태:迨:미칠 태
+태:蛻:
+태:駘:
+태:埭:보뚝 태
+태:娧:기뻐할 태, 더딜 태
+태:孡:
+태:抬:칠 태
 태:兑:
 태:紿:
 태:蜕:
-태:蛻:
-태:駘:
 태:䭾:
 태:鮐:
 태:忕:
 태:呔:
-태:埭:보뚝 태
 태:兊:
 태:忲:
 태:㤗:
 태:骀:
 태:鲐:
 태:䌼:
-태:娧:기뻐할 태, 더딜 태
-태:孡:
-태:抬:칠 태
 태:傣:
 태:冭:
 태:囼:
 탯권도:跆拳道:
 탯권도장:跆拳道場:
 탱:撑:撐의 俗字, 버틸 탱
-탱:竀:
 탱:撐:버틸 탱, 취할 탱, 헤칠 탱
+탱:牚:
+탱:竀:
 탱:樘:
 탱:橖:
-탱:牚:
 탱:橕:
 탱:㯑:
 탱목:撑木:
 토:討:다스릴 토, 칠 토, 찾을 토, 벨 토, 꾸짖을 토
 토:吐:토할 토, 나올 토, 펼 토
 토:兎:兔의 俗字, 토끼 토
-토:兔:
 토:菟:
+토:兔:
 토:圡:
 토:茔:
 토:讨:
 통:桶:엿되들이 통 통
 통:恫:슬플 통, 아플 통, 앓을 통
 통:侗:
+통:筩:대나무통 통, 낚시 통
+통:樋:대 홈 통, 어름나무 통
 통:㷁:
 통:憅:
-통:筩:대나무통 통, 낚시 통
 통:熥:
 통:綂:
 통:恸:
 통:统:
-통:樋:대 홈 통, 어름나무 통
 통:嗵:
 통:捅:
 통:痌:
 퇴:焞:
 퇴:搥:
 퇴:隤:무너질 퇴, 미끄러질 퇴, 부드러울 퇴, 땅이름 퇴
-퇴:頽:
 퇴:魋:
+퇴:頽:
 퇴:僓:
 퇴:蓷:
 퇴:痽:
 투:妬:투기할 투, 자식 없는 계집 투, 질투할 투
 투:偸:훔칠 투, 엷을 투, 구차할 투, 인정머리없을 투
 투:渝:빛 변할 투, 더러워질 투, 고을이름 투
+투:妒:투기할 투, 미워할 투, 강샘할 투, 부러워할 투
+투:骰:주사위 투
 투:偷:
 투:闘:
-투:妒:투기할 투, 미워할 투, 강샘할 투, 부러워할 투
 투:鬭:
-투:骰:주사위 투
 투:哣:
 투:敨:
 투:牏:
 파:怕:두려울 파
 파:葩:꽃봉오리 파
 파:皤:흴 파, 배 불룩할 파, 귀 밑에 희끗희끗할 파
-파:壩:
 파:帕:머리 동이수건 파
 파:簸:까부를 파, 키 파
-파:罢:
 파:灞:물이름 파
-파:疤:
 파:玻:파려옥 파, 유리옥 파
-파:帊:
 파:笆:가시 대 파, 울타리 파
+파:鄱:땅이름 파
+파:妑:새앙머리 파, 갈래머리 파
+파:岥:산 비알질 파
+파:爸:아비 파
+파:耙:쇠시랑 파
+파:菠:시금치 파
+파:壩:
+파:罢:
+파:疤:
+파:帊:
 파:靶:
 파:䆉:
-파:鄱:땅이름 파
 파:嶓:
-파:妑:새앙머리 파, 갈래머리 파
 파:垻:
 파:吧:
 파:欛:
 파:钯:
 파:钷:
 파:颇:
-파:岥:산 비알질 파
-파:爸:아비 파
-파:耙:쇠시랑 파
-파:菠:시금치 파
 파:啵:
 파:嘙:
 파:夿:
 패:霸:으뜸 패, 패왕 패
 패:孛:혜성 패
 패:旆:기 패, 깃발 날릴 패
-패:犻:
 패:珮:노리개 패, 찰 패
+패:犻:
 패:誖:
 패:邶:
 패:棑:
 팽:膨:배 불룩할 팽, 큰배 팽
 팽:澎:물소리 팽, 물결 부딛는 형세 팽
 팽:烹:삶을 팽, 요리 팽, 삶는 팽
-팽:伻:
 팽:祊:사당문 제사 팽
-팽:閍:
-팽:碰:
 팽:砰:여울 물소리 팽
 팽:蟚:蟛과 同字
 팽:蟛:방게 팽
+팽:伻:
+팽:閍:
+팽:碰:
 팽:嘭:
 팽:嵭:
 팽:憉:
 편:翩:훌쩍 날 편, 오락가락할 편, 훌쩍나는 모양 편
 편:徧:
 편:褊:좁을 편, 급할 편, 옷이 몸에 낄 편
-편:煸:
-편:蹁:
-편:楩:
 편:艑:거룻배 편
 편:蝙:박쥐 편
 편:匾:
 편:諞:공교한 말 편
+편:惼:조급할 편, 편협할 편
+편:緶:꿰맬 편
+편:萹:
+편:煸:
+편:蹁:
+편:楩:
 편:楄:
 편:鯾:
 편:鯿:
 편:谝:
 편:骗:
 편:鳊:
-편:惼:조급할 편, 편협할 편
-편:緶:꿰맬 편
-편:萹:
 편:囨:
 편:媥:
 편:揙:
 평:苹:맑은 대쑥 평, 사과 평
 평:抨:탄핵할 평
 평:怦:맘 급할 평, 칼칼할 평
-평:玶:
 평:泙:물소리 평, 물결 셀 평
+평:蓱:마름 평, 머구리밥 평, 개구리밥 평
+평:鮃:가자미 평
+평:玶:
 평:呯:
 평:䦕:
 평:评:
 평:鲆:
-평:蓱:마름 평, 머구리밥 평, 개구리밥 평
-평:鮃:가자미 평
 평:匉:
 평:姘:
 평:岼:
 폐:嬖:사랑할 폐, 윗사람으로부터 사랑받을 폐, 벼슬이름 폐
 폐:獘:곤할 폐, 폐단 폐, 죽을 폐, 엎드러질 폐
 폐:敝:옷 해질 폐, 버릴 폐, 무너질 폐, 실패할 폐, 활줌통 폐
-폐:廃:
 폐:癈:고질병 폐
-폐:杮:
 폐:狴:짐승이름 폐, 옥 폐, 들개 폐
+폐:廃:
+폐:杮:
 폐:梐:
 폐:㢢:
 폐:幤:
 포:匍:엉금엉금 길 포, 엎드러질 포
 포:咆:고함지를 포, 짐승소리 포, 불끈 성낼 포, 으르릉거릴 포
 포:疱:부풀 포, 부르틀 포
-포:庖:푸줏간 포, 부엌 포
 포:苞:그령풀 포, 밑둥 포, 초목이 다복히 날 포, 꾸러피 포, 꾸러미 포
 포:佈:펼칠 포, 널리알릴 포
 포:匏:박 포, 바가지 포, 퉁소 포
+포:庖:푸줏간 포, 부엌 포
 포:炮:그슬릴 포, 싸서 구울 포, 형벌 포
 포:晡:신시 포, 해질 포
 포:餔:저녁 곁두리 포, 먹을 포
+포:舖:鋪의 俗字
+포:炰:그슬 포, 까불거릴 포
+포:誧:꾀할 포, 클 포, 도울 포, 간할 포
+포:儤:
+포:鞄:가방 포, 가죽 다로는 장인 포
+포:鯆:매가리 포, 물아지 포
+포:曓:급할 포, 창졸 포
+포:鉋:대패 포
 포:拋:
 포:酺:
-포:舖:鋪의 俗字
 포:宲:
 포:礮:
-포:炰:그슬 포, 까불거릴 포
 포:枹:
-포:誧:꾀할 포, 클 포, 도울 포, 간할 포
-포:儤:
 포:襃:
 포:虣:
 포:圑:
 포:蒱:
 포:麅:
-포:鞄:가방 포, 가죽 다로는 장인 포
 포:笣:
-포:鯆:매가리 포, 물아지 포
 포:怉:
 포:脬:
 포:舗:
 포:饱:
 포:鲍:
 포:龅:
-포:曓:급할 포, 창졸 포
-포:鉋:대패 포
 포:佨:
 포:勹:싸다
 포:咘:
 포주:包主:
 포주:圃主:
 포주:砲柱:
-포주:廚:
+포주:廚:
 포주성:抱州城:
 포죽:匏粥:
 포준:匏樽:
 표:驃:날쌜 표, 누런 말 표
 표:飇:회오리바람 표
 표:縹:옥빛 표, 훌쩍 날 표
-표:飆:
 표:摽:칠 표, 두를 표, 찔러 밀칠 표, 가슴 만질 표
 표:殍:굶어 죽을 표
 표:鑣:말 재갈 표, 성할 표
+표:裱:목수건 표
+표:僄:몸이 가벼울 표, 진중치 못할 표
+표:嫖:가벼울 표, 날랠 표, 색에 빠질 표
+표:勡:겁탈할 표, 겁박할 표
+표:嘌:휙 불 표, 몰아갈 표
+표:熛:불똥 튈 표, 성낼 표, 붉을 표, 빛날 표
+표:鏢:칼날 표, 비수 표
+표:髟:머리털 희뜩희뜩할 표, 깃발 날릴 표, 머리 늘일 표, 머리털이길게드리워진모양 표
+표:鰾:부레 표
+표:飆:
 표:颷:
 표:醥:
-표:裱:목수건 표
 표:淲:
 표:藨:
-표:僄:몸이 가벼울 표, 진중치 못할 표
-표:嫖:가벼울 표, 날랠 표, 색에 빠질 표
 표:飈:
 표:飊:
 표:彯:
 표:骉:
 표:骠:
 표:鳔:
-표:勡:겁탈할 표, 겁박할 표
-표:嘌:휙 불 표, 몰아갈 표
-표:熛:불똥 튈 표, 성낼 표, 붉을 표, 빛날 표
-표:鏢:칼날 표, 비수 표
-표:髟:머리털 희뜩희뜩할 표, 깃발 날릴 표, 머리 늘일 표, 머리털이길게드리워진모양 표
-표:鰾:부레 표
 표:儦:
 표:墂:
 표:婊:
 풍:楓:단풍나무 풍, 신나무 풍
 풍:諷:비유로 간할 풍, 외울 풍, 욀 풍
 풍:馮:벼슬이름 풍, 성씨 풍, 물귀신이름 풍, 고을이름 풍
-풍:豐:
 풍:丰:
+풍:葑:
+풍:豐:
+풍:瘋:두풍 풍, 미치광이 풍
 풍:酆:
 풍:鄷:
-풍:葑:
 풍:渢:
 풍:偑:
 풍:凮:
 풍:砜:
 풍:讽:
 풍:风:
-풍:瘋:두풍 풍, 미치광이 풍
 풍:僼:
 풍:凨:
 풍:凬:
 피:陂:기울어질 피, 치우칠 피
 피:辟:
 피:詖:말 잘할 피, 간사할 피, 알소할 피
+피:鞁:말 가슴걸이 피, 안갑 피
+피:屁:
+피:髲:머리쓰개 피, 첩지 피
 피:柀:
 피:帔:
 피:骳:
 피:狓:
 피:鈹:
 피:佊:
-피:鞁:말 가슴걸이 피, 안갑 피
 피:秛:
 피:㱟:
 피:诐:
 피:铍:
 피:鲏:
 피:䙓:
-피:屁:
-피:髲:머리쓰개 피, 첩지 피
 피:怶:
 피:旇:
 피:氕:
 필:篳:대 사립문 필, 나무 실은 수레 필
 필:觱:바람이 쌀쌀할 필, 대평수 필
 필:佖:점잔피울 필, 가득할 필
+필:滭:샘 끓어 솟을 필
+필:駜:살찐 말 필
+필:鵯:갈가마귀 필
+필:咇:향기날 필
+필:罼:토끼그물 필
+필:鞸:슬갑 필
 필:驆:
 필:弻:
-필:滭:샘 끓어 솟을 필
 필:榓:
 필:㻶:
-필:駜:살찐 말 필
-필:鵯:갈가마귀 필
 필:熚:
 필:胇:
 필:袐:
 필:跸:
 필:铋:
 필:鹎:
-필:咇:향기날 필
-필:罼:토끼그물 필
-필:鞸:슬갑 필
 필:吡:
 필:嗶:
 필:妼:
 필히:必히:
 핍:乏:없을 핍, 옹색할 핍, 다할 핍, 모자랄 핍
 핍:逼:가까울 핍, 궁핍할 핍, 핍박학 핍, 핍박할 핍
-핍:愊:
 핍:偪:핍박할 핍, 가까울 핍
+핍:愊:
 핍:姂:
 핍:鴔:
 핍근:逼近:
 하:鰕:새우 하, 암고래 하
 하:昰:是와 同字, 여름 하
 하:嚇:놀라게 할 하
-하:嘏:
 하:罅:틈 하
-하:縀:
 하:呀:입 벌릴 하
 하:鍜:목투구 하
+하:煆:불사를 하
+하:岈:휑뎅그렁할 하
+하:懗:속일 하
+하:瘕:이질 하
+하:嘏:
+하:縀:
 하:睱:
 하:谺:
-하:煆:불사를 하
 하:騢:
 하:鏬:
-하:岈:휑뎅그렁할 하
 하:哧:
 하:抲:
 하:菏:
 하:㙈:
 하:虾:
 하:贺:
-하:懗:속일 하
-하:瘕:이질 하
 하:丅:
 하:丷:
 하:哬:
 학:壑:골짜기 학
 학:謔:희롱할 학
 학:瘧:학질 학
-학:学:
 학:确:확실할 학
 학:涸:마를 학
-학:翯:
 학:郝:고을 이름 학
-학:觷:
 학:狢:오소리 학
-학:嗃:
 학:熇:
 학:鷽:메까치 학
+학:皬:흴 학
+학:学:
+학:翯:
+학:觷:
+학:嗃:
 학:澩:
 학:矐:
 학:㕰:
 학:谑:
 학:鸴:
 학:鹤:
-학:皬:흴 학
 학:嗀:
 학:嚛:
 학:嚯:
 한:閒:한가할 한, 겨를 한
 한:瀚:넓고 큰 한, 넓고클 한
 한:桿:막대기 한
-한:扞:
 한:捍:막을 한
 한:閈:마을 문 한
-한:狠:
-한:僴:
 한:暵:말릴 한
 한:鼾:코골 한
-한:覵:
 한:犴:
+한:僩:노할 한
+한:嫺:우아할 한
+한:熯:
+한:嫻:우아할 한
+한:駻:사나운 말 한
+한:鷳:소리개 한
+한:扞:
+한:狠:
+한:僴:
+한:覵:
 한:瞷:
 한:猂:
-한:僩:노할 한
 한:邗:
 한:骭:
-한:嫺:우아할 한
-한:熯:
 한:撊:
 한:鷴:
 한:垾:
 한:焊:
 한:闬:
 한:韩:
-한:嫻:우아할 한
-한:駻:사나운 말 한
-한:鷳:소리개 한
 한:仠:
 한:佷:
 한:傼:
 할:轄:다스릴 할, 맡아볼 할
 할:蝎:
 할:黠:
-할:傄:
-할:劼:
 할:瞎:애꾸눈 할
 할:鶡:
+할:蠍:
+할:傄:
+할:劼:
 할:縖:
 할:舝:
 할:䫘:
 할:辖:
-할:蠍:
 할:乤:
 할:嗐:
 할:搳:
 함:諴:화할 함
 함:菡:연봉오리 함
 함:頷:
-함:䧟:
 함:嗛:
+함:闞:범 소리 함
+함:憨:
+함:莟:꽃봉오리 함
+함:轞:함거 함
+함:䧟:
 함:淊:
 함:凾:
 함:醎:
-함:闞:범 소리 함
 함:顑:
 함:圅:
 함:㴠:
 함:䓿:
-함:憨:
 함:衘:
 함:谽:
 함:馠:
 함:唅:
 함:浛:
 함:筨:
-함:莟:꽃봉오리 함
 함:琀:
 함:甉:
 함:魽:
 함:舰:
 함:阚:
 함:馅:
-함:轞:함거 함
 함:壏:
 함:娢:
 함:晗:
 합:溘:문득 합, 이를 합, 의지할 합
 합:榼:술그릇 합, 물통 합, 뚜껑 합
 합:郃:땅이름 합
+합:柙:우리 합, 향나무 합
+합:匌:기운 답답할 합
+합:嗑:잔말할 합, 웃는 소리 합, 입 다물 합, 괘 이름 합
 합:呷:
 합:詥:
 합:鴿:
-합:柙:우리 합, 향나무 합
 합:篕:
-합:匌:기운 답답할 합
 합:㝓:
-합:嗑:잔말할 합, 웃는 소리 합, 입 다물 합, 괘 이름 합
 합:峆:
 합:欱:
 합:烚:
 항:桁:수갑 항, 배다리 항, 횃대 항, 시렁 항
 항:嫦:항아
 항:恆:恒의 本字
-항:骯:
 항:頏:목 항, 오르락 내리락할 항
+항:炕:마를 항, 구울 항, 구들 항
+항:夯:멜 항, 다질 항
+항:缿:항통 항, 문서함 항, 벙어리 항
+항:骯:
 항:吭:
 항:閌:
-항:炕:마를 항, 구울 항, 구들 항
 항:衖:
-항:夯:멜 항, 다질 항
 항:佭:
 항:斻:
 항:闀:
 항:闶:
 항:项:
 항:颃:
-항:缿:항통 항, 문서함 항, 벙어리 항
 항:塂:
 항:岲:
 항:栙:
 해:蟹:게 해
 해:醢:젓 해, 젓 담글 해, 젓 담그는 형벌 해
 해:廨:관청 해, 공해 해
-해:觧:
-해:澥:
 해:薤:염교 해, 부추 해
 해:獬:신통한 양 해, 해갓 해
 해:瑎:
 해:欬:기침할 해, 크게 부를 해, 일깨울 해
+해:咍:비웃을 해
+해:嶰:골짝 사이 해, 골 이름 해
+해:痎:학질 해, 하루거리 해
+해:鮭:어채 해, 복 해
+해:頦:턱 해
+해:觧:
+해:澥:
 해:晐:
 해:陔:
-해:咍:비웃을 해
 해:荄:
 해:蠏:
 해:侅:
 해:駴:
 해:㤥:
-해:嶰:골짝 사이 해, 골 이름 해
 해:畡:
 해:賅:
-해:痎:학질 해, 하루거리 해
-해:鮭:어채 해, 복 해
 해:峐:
 해:檞:
 해:膎:
 해:颏:
 해:骇:
 해:鲑:
-해:頦:턱 해
 해:嗨:
 해:塰:
 해:妎:
 향:嚮:향할 향, 누릴 향, 울릴 향, 받을 향
 향:餉:먹일 향, 군량 향, 점심 향
 향:珦:옥이름
-향:鄊:
 향:薌:곡기 향, 향기 향, 기장 향
+향:鄊:
 향:晑:
 향:曏:
 향:郷:
 허:虛:빌 허, 헛될 허, 다할 허, 약할 허, 거짓 허, 하늘 허
 허:墟:옛 터 허, 장 허, 큰 두덕 허, 옛성터 허
 허:噓:불 허, 뿜을 허, 탄식할 허
-허:虚:
 허:詡:
 허:歔:한숨 쉴 허, 흑흑 느껴 울 허, 코로 숨 내쉴 허
+허:虚:
 허:栩:
 허:虗:
 허:㠊:
 헌:獻:바칠 헌, 음식 헌, 어진이 헌, 드릴 헌
 헌:軒:초헌 헌, 껄껄 웃을 헌, 주적댈 헌, 추녀끝 헌, 고기 굵게 저밀 헌
 헌:櫶:나무이름
-헌:献:
 헌:掀:
-헌:巘:
-헌:瀗:
+헌:献:
 헌:巚:봉우리 헌, 시루봉 헌
 헌:幰:수레 안장 헌, 휘장 헌
+헌:攇:비길 헌, 물건 맬 헌
+헌:巘:
+헌:瀗:
 헌:宪:
 헌:轩:
-헌:攇:비길 헌, 물건 맬 헌
 헌:仚:
 헌:佡:
 헌:搟:
 헌화탁:獻花卓:
 헐:歇:쉴 헐, 나른할 헐, 다할 헐, 으슥할 헐, 스러질 헐, 흩어질 헐
 헐:蝎:
-헐:滊:
 헐:蠍:
+헐:滊:
 헐가:歇價:
 헐가방매:歇價放賣:
 헐각:歇脚:
 혁:奕:아름다울 혁, 클 혁, 차례 혁, 바둑 혁, 빛날 혁, 근심할 혁
 혁:嚇:노할 혁, 꾸짖을 혁
 혁:洫:넘칠 혁, 빌 혁, 봇도랑 혁
-혁:衋:
 혁:鬩:송사할 혁, 싸울 혁
 혁:弈:바둑둘 혁
+혁:焱:
+혁:衋:
 혁:虩:
 혁:侐:
 혁:焃:
-혁:焱:
 혁:殈:
 혁:赩:
 혁:㷜:
 현:泫:물 깊을 현, 이슬 맺힐 현, 눈물 줄줄 흘릴 현
 현:睍:물끄러미 볼 현, 고울 현
 현:舷:뱃전 현
-현:顕:
-현:袨:
 현:儇:영리할 현, 빠를 현
 현:嬛:산뜻할 현
-현:灦:
-현:敻:
 현:昡:햇빛 현
 현:誢:
-현:礥:
-현:贒:
 현:琄:
 현:眴:
 현:繯:얽힐 현, 둘릴 현, 맬 현
+현:痃:힘줄 당기는 병 현, 적병 현
+현:筧:
+현:県:고을 현, 지방 현
+현:祆:
+현:翾:파뜩파뜩 날 현, 경박할 현, 영리할 현, 급할 현
+현:蜆:가막조개 현, 호수이름 현
+현:鋗:노구솥 현, 퉁노구 현
+현:駽:돗총이 현, 철총이 현
+현:顕:
+현:袨:
+현:灦:
+현:敻:
+현:礥:
+현:贒:
 현:垷:
 현:莧:
 현:㬎:
-현:痃:힘줄 당기는 병 현, 적병 현
-현:筧:
 현:哯:
 현:埍:
 현:胘:
 현:鋧:
 현:鑦:
 현:䧎:
-현:県:고을 현, 지방 현
-현:祆:
 현:伣:
 현:县:
 현:岘:
 현:蚬:
 현:贤:
 현:铉:
-현:翾:파뜩파뜩 날 현, 경박할 현, 영리할 현, 급할 현
-현:蜆:가막조개 현, 호수이름 현
-현:鋗:노구솥 현, 퉁노구 현
-현:駽:돗총이 현, 철총이 현
 현:伭:
 현:呟:
 현:咞:
 혈:孑:외로울 혈, 나머지 혈, 창갈구리 혈
 혈:頁:머리 혈, 마리 혈, 페이지(page) 혈
 혈:絜:헤아릴 혈, 묶을 혈
-혈:泬:
 혈:趐:새가 떼로 날 혈, 나아갈 혈
+혈:泬:
 혈:蝢:
 혈:緳:
 혈:䆷:
 혈흔:血痕:
 혈흔검사:血痕檢査:
 혐:嫌:싫어할 혐, 의심할 혐, 유쾌하지 않을 혐
+혐:鼸:
 혐:馦:
 혐:㾾:
-혐:鼸:
 혐:㺌:
 혐:㽐:
 혐:䵌:
 협:叶:화합할 협
 협:恊:겁낼 협, 위협할 협
 협:愜:쾌할 협, 뜻에 맞을 협
-협:祫:
 협:篋:상자 협, 행담 협
+협:悏:
+협:匧:옷상자 협, 꿰맬 협
+협:埉:
+협:祫:
 협:峡:
 협:惬:
-협:悏:
 협:䝱:
 협:筴:
 협:蛺:
 협:颊:
 협:饸:
 협:䇲:
-협:匧:옷상자 협, 꿰맬 협
-협:埉:
 협:嗋:
 협:垥:
 협:愶:
 형:鎣:줄 형, 꾸밀 형
 형:灐:물 이름 형
 형:迥:막을 형, 차단할 형
-형:荆:
 형:詗:염탐할 형, 구할 형
-형:鉶:
 형:夐:멀 형, 바라보는 모양 형
+형:陘:지레목 형, 비탈 형
+형:娙:여관 이름 형, 예쁠 형
+형:荆:
+형:鉶:
 형:硎:
 형:浻:
 형:蘅:
 형:郉:
-형:陘:지레목 형, 비탈 형
 형:脝:
 형:㢠:
 형:侀:
 형:诇:
 형:铏:
 형:陉:
-형:娙:여관 이름 형, 예쁠 형
 형:哼:
 형:坓:
 형:嵤:
 혜:蹊:지름길 혜, 건널 혜
 혜:蕙:혜초 혜, 난초 혜
 혜:暳:잔별
-혜:恵:
 혜:盻:흘겨볼 혜, 돌아볼 혜
-혜:嵇:산이름
 혜:徯:기다릴 혜, 사잇길 혜
 혜:槥:널 혜, 작은 관 혜
-혜:鼷:
 혜:傒:묶을 혜
 혜:嘒:가냘플 혜
+혜:寭:밝힐 혜, 깨달을 혜
+혜:謑:창피줄 혜
+혜:譿:슬기로울 혜
+혜:恵:
+혜:嵇:산이름
+혜:鼷:
 혜:鞵:
 혜:潓:
 혜:嵆:
 혜:㜎:
 혜:䚷:
 혜:䧥:
-혜:寭:밝힐 혜, 깨달을 혜
-혜:謑:창피줄 혜
-혜:譿:슬기로울 혜
 혜:僡:
 혜:匸:감추다
 혜:嚡:
 호:頀:구할 호, 지킬 호, 풍류이름 호
 호:淏:맑을 호
 호:葫:마늘 호, 조롱박 호, 굵은 마늘 호
-호:号:
 호:犒:호궤할 호
-호:户:
-호:㦿:
 호:怙:믿을 호
 호:沍:冱의 譌字
+호:箎:긴 대 호
+호:餬:기식할 호
+호:皞:밝을 호, 흴 호
+호:醐:제호 호
+호:嘷:짖을 호, 외칠 호
+호:滈:장마 호
+호:冱:찰 호, 얼 호, 막을 호
+호:嫮:아름다울 호, 시기할 호
+호:滬:강 이름 호
+호:皜:흴 호, 흰 모양 호
+호:儫:영웅 호
+호:嫭:
+호:猢:원숭이 호
+호:聕:들릴 호, 긴 귀 호
+호:鬍:수염 호
+호:号:
+호:户:
+호:㦿:
 호:昈:
 호:皥:
-호:箎:긴 대 호
 호:乕:
 호:䎁:
 호:蠔:
-호:餬:기식할 호
 호:鄗:
-호:皞:밝을 호, 흴 호
 호:唬:
 호:皡:
-호:醐:제호 호
-호:嘷:짖을 호, 외칠 호
-호:滈:장마 호
 호:壷:
 호:暭:
 호:虖:
 호:鄠:
-호:冱:찰 호, 얼 호, 막을 호
-호:嫮:아름다울 호, 시기할 호
-호:滬:강 이름 호
 호:猲:
 호:嘑:
 호:楜:
 호:苸:
 호:䕶:
 호:䚽:
-호:皜:흴 호, 흰 모양 호
 호:帍:
 호:暤:
 호:曍:
 호:镐:
 호:颢:
 호:鹕:
-호:儫:영웅 호
-호:嫭:
-호:猢:원숭이 호
-호:聕:들릴 호, 긴 귀 호
-호:鬍:수염 호
 호:乊:
 호:傐:
 호:冴:
 혼:睨:
 혼:惛:흐릴 혼
 혼:焜:빛날 혼
+혼:湣:
+혼:圂:뒷간 혼
 혼:惽:
 혼:睯:
 혼:掍:
-혼:湣:
 혼:鯶:
 혼:鼲:
 혼:䰟:
 혼:珲:
 혼:阍:
 혼:馄:
-혼:圂:뒷간 혼
 혼:倱:
 혼:堚:
 혼:婫:
 홀:忽:소흘히 할 홀, 홀연 홀
 홀:笏:홀 홀
 홀:惚:황홀할 홀
+홀:囫:온전할 홀
 홀:絗:
 홀:曶:
 홀:芴:
 홀:㧾:
 홀:䬍:
 홀:锪:
-홀:囫:온전할 홀
 홀:乥:
 홀:匢:
 홀:匫:
 홍:哄:떠들썩할 홍
 홍:烘:횃불 홍
 홍:汞:수은 홍
-홍:洚:
-홍:閧:
 홍:鬨:싸울 홍
 홍:澒:수은 홍
+홍:晎:날 밝으려 할 홍
+홍:篊:홈통 홍
+홍:鉷:돌쇠뇌 홍
+홍:洚:
+홍:閧:
 홍:葒:
 홍:妅:
 홍:唝:
 홍:荭:
 홍:讧:
 홍:鸿:
-홍:晎:날 밝으려 할 홍
-홍:篊:홈통 홍
-홍:鉷:돌쇠뇌 홍
 홍:仜:
 홍:叿:
 홍:嗊:
 화:譁:시끄러울 화, 떠들썩할 화
 화:樗:
 화:畫:그림 화
-화:画:
 화:夥:
 화:擭:
 화:嘩:譁와 同字
-화:澕:
 화:驊:준마 화
+화:俰:화할 화
+화:婲:예쁠 화
+화:龢:풍류 조화될 화
+화:画:
+화:澕:
 화:槬:
 화:墷:
 화:鞾:
 화:咊:
 화:鏵:
-화:俰:화할 화
 화:伙:
 화:楇:
 화:璍:
 화:铧:
 화:骅:
 화:鳠:
-화:婲:예쁠 화
-화:龢:풍류 조화될 화
 화:吙:
 화:啝:
 화:埖:
 확:鑊:가마 확
 확:确:
 확:涸:
+확:擭:
+확:矍:두리번거릴 확
+확:礭:
+확:矡:
 확:䨥:
 확:镬:
 확:雘:
-확:擭:
 확:矱:
-확:矍:두리번거릴 확
 확:蠖:
-확:礭:
 확:彍:
 확:戄:
 확:彉:
 확:扩:
 확:拡:
 확:鹱:
-확:矡:
 확:劐:
 확:嬳:
 확:彏:
 환:晥:환할 환
 환:懽:기뻐할 환
 환:圜:두를 환
-환:逭:
 환:寰:기내 환
-환:癏:
 환:豢:기를 환
 환:鬟:쪽찐 머리 환
+환:擐:입을 환
+환:轘:환형 환
+환:瓛:옥홀 환
+환:睆:가득 차 있는 모양 환
+환:鍰:무게 단위 환
+환:絙:끈목 환
+환:鐶:고리 환
+환:繯:
+환:垸:
+환:皖:샛별 환
+환:逭:
+환:癏:
 환:寏:
 환:瑍:
 환:䆠:
-환:擐:입을 환
 환:讙:
 환:鱞:
-환:轘:환형 환
 환:漶:
 환:㬊:
-환:瓛:옥홀 환
-환:睆:가득 차 있는 모양 환
-환:鍰:무게 단위 환
 환:汍:
 환:闤:
-환:絙:끈목 환
-환:鐶:고리 환
 환:澴:
-환:繯:
 환:弮:
 환:芄:
 환:㬇:
 환:阛:
 환:鲩:
 환:鳏:
-환:垸:
-환:皖:샛별 환
 환:喛:
 환:峘:
 환:愌:
 활:滑:미끄러울 활, 어지러울 활
 활:猾:교활할 활
 활:豁:뚫린 골 활, 골짜기 활
+활:佸:
+활:蛞:괄태충 활
 활:濶:
 활:䀨:
 활:敌:
 활:阔:
-활:佸:
-활:蛞:괄태충 활
 활:奯:
 활:姡:
 활:眓:
 황:幌:휘장 황
 황:湟:해자 황, 물결빨리내려가는 모양 황
 황:晄:晃과 同字, 밝을 황
-황:况:
 황:怳:멍할 황
 황:貺:줄 황
-황:黄:
 황:肓:명치 끝 황
+황:喤:어린아이 울음 황
+황:鎤:종소리 황
+황:熀:
+황:瑝:옥 소리 황
+황:媓:어머니 황
+황:况:
+황:黄:
 황:䌙:
 황:皝:
 황:熿:
-황:喤:어린아이 울음 황
-황:鎤:종소리 황
 황:偟:
 황:艎:
 황:謊:
-황:熀:
 황:㡛:
 황:癀:
 황:穔:
 황:縨:
-황:瑝:옥 소리 황
 황:墴:
 황:揘:
 황:衁:
 황:谎:
 황:贶:
 황:鳇:
-황:媓:어머니 황
 황:兤:
 황:堭:
 황:塃:
 회:匯:물돌 회, 물이돌아가는 회
 회:獪:교활할 회, 간교할 회
 회:茴:회향풀 회
-회:湏:
-회:会:
-회:懐:
-회:囬:
 회:迴:回와 同字
-회:禬:
 회:燹:
-회:㑹:
 회:洄:거슬러 올라 갈 회
-회:薈:
 회:詼:조롱할 회
 회:鱠:회 회
 회:佪:어정거릴 회
-회:豗:
 회:繢:
 회:滙:匯와 同字
 회:闠:
 회:頮:세수할 회
 회:沬:
 회:盔:바리 회
+회:栃:상수리나무 회
+회:湏:
+회:会:
+회:懐:
+회:囬:
+회:禬:
+회:㑹:
+회:薈:
+회:豗:
 회:囘:
 회:逥:
 회:瀤:
 회:颒:
 회:鲙:
 회:㧟:
-회:栃:상수리나무 회
 회:劊:
 회:咴:
 회:嬒:
 획:硅:
 획:畫:그을 획
 획:擭:
+획:嚄:외칠 획
 획:謢:
 획:撶:
 획:繣:
 획:㗲:
 획:获:
 획:婳:
-획:嚄:외칠 획
 획:咟:
 획:嚿:
 획:嫿:
 횡:薨:많을 횡
 횡:宖:집 울릴 횡, 평안할 횡
 횡:鐄:종 횡, 큰 종 횡
-횡:横:
 횡:黌:글방 횡
+횡:鈜:쇳소리 횡
+횡:澋:물이 빙 돌 횡
+횡:横:
 횡:鋐:
 횡:紭:
 횡:竑:
-횡:鈜:쇳소리 횡
 횡:黉:
-횡:澋:물이 빙 돌 횡
 횡:吰:
 횡:嚝:
 횡:峵:
 효:驍:날랠 효
 효:斅:가르칠 효, 깨우칠 효
 효:涍:성 효, 물가 효
-효:効:
 효:囂:시끄럽다 효
-효:暁:
-효:嘵:
-효:枵:
 효:嘐:
 효:傚:본받을 효
 효:殽:섞일 효
+효:崤:산 이름 효
+효:熇:불김 효
+효:皛:나타날 효
+효:虓:울부짖을 효
+효:餚:반찬 효
+효:効:
+효:暁:
+효:嘵:
+효:枵:
 효:鴞:
 효:歊:
-효:崤:산 이름 효
 효:斆:
 효:憢:
 효:毊:
-효:熇:불김 효
-효:皛:나타날 효
-효:虓:울부짖을 효
 효:嘋:
-효:餚:반찬 효
 효:獢:
 효:筊:
 효:髇:
 후:詬:
 후:涸:
 후:垕:厚의 古字
-후:糇:
 후:詡:자랑할 후
 후:酗:주정할 후
 후:猴:원숭이 후
 후:堠:봉화대 후
 후:喣:불 후
-후:齅:
 후:餱:건량 후
 후:篌:공후 후
+후:佝:
+후:譃:망녕된 말 후
+후:吽:
+후:糇:
+후:齅:
 후:姁:
 후:睺:
 후:矦:
 후:郈:
-후:佝:
 후:鍭:
 후:珛:
 후:齁:
 후:诩:
 후:鲎:
 후:鲘:
-후:譃:망녕된 말 후
-후:吽:
 후:冔:
 후:呍:
 후:洉:
 훈:勛:勳의 古字, 공적 훈
 훈:焄:연기에 그을릴 훈, 향내 훈
 훈:燻:연기 낄 훈, 불기운성할 훈
-훈:勲:
 훈:曛:삭양 빛 훈
-훈:醺:
 훈:纁:분홍빛 훈
 훈:葷:매운 채소 훈
+훈:獯:오랑캐 이름 훈
+훈:鑂:금빛 투색할 훈
+훈:爋:불에 말릴 훈
+훈:勲:
+훈:醺:
 훈:坃:
 훈:薫:
-훈:獯:오랑캐 이름 훈
 훈:矄:
-훈:鑂:금빛 투색할 훈
 훈:埙:
 훈:勋:
 훈:晕:
 훈:荤:
 훈:训:
-훈:爋:불에 말릴 훈
 훈:嚑:
 훈:壦:
 훈:瞓:
 훤:萱:원추리 훤
 훤:暄:따뜻할 훤, 날따뜻할 훤
 훤:煊:따뜻할 훤
-훤:翧:
 훤:諼:속일 훤
 훤:諠:잊을 훤
-훤:晅:
 훤:烜:마를 훤
+훤:翧:
+훤:晅:
 훤:楦:
 훤:藼:
 훤:箮:
 훼:喙:부리 훼, 주둥이 훼
 훼:卉:풀 훼
 훼:虫:벌레 훼
-훼:毀:
 훼:虺:살무사 훼
 훼:燬:불 훼
-훼:毇:
 훼:芔:풀 훼
+훼:毀:
+훼:毇:
 훼:檓:
 훼:譭:
 훼:顪:
 휴:睢:
 휴:鵂:수리부엉이 휴
 휴:咻:떠들 휴
+휴:擕:携와 同字
+휴:髹:옻칠할 휴
 휴:庥:
 휴:鑴:
 휴:貅:
-휴:擕:携와 同字
-휴:髹:옻칠할 휴
 휴:攜:
 휴:巂:
 휴:瓗:
 휼:恤:구휼할 휼, 근심할 휼
 휼:譎:속일 휼, 간사할 휼
 휼:鷸:황새
-휼:霱:
 휼:卹:
+휼:潏:
+휼:霱:
 휼:遹:
 휼:鐍:
 휼:䘏:
-휼:潏:
 휼:獝:
 휼:䎉:
 휼:谲:
 흉:匈:가슴
 흉:兇:흉악할 흉, 나쁜 흉
 흉:洶:물살세찰 흉, 물소리 흉
-흉:汹:
-흉:㐫:
 흉:胷:胸과 同字
 흉:恟:두려워할 흉
+흉:汹:
+흉:㐫:
 흉:忷:
 흉:訩:
 흉:讻:
 흔:忻:기뻐할 흔
 흔:訢:기뻐할 흔
 흔:掀:치켜들 흔
+흔:焮:불사를 흔
+흔:很:패려궂을 흔
 흔:舋:
 흔:盺:
 흔:慁:
-흔:焮:불사를 흔
 흔:俒:
-흔:很:패려궂을 흔
 흔:拫:
 흔:鞎:
 흔:锨:
 흘:屹:산 우뚝솟을 흘, 산모양 흘
 흘:紇:질 낮은 명주실 흘, 실밑 흘
 흘:迄:이를 흘
-흘:忔:
 흘:汔:거의 흘
 흘:仡:날랠 흘
+흘:疙:쥐부스럼 흘
+흘:齕:깨물 흘
+흘:忔:
 흘:扢:
 흘:虼:
 흘:籺:
 흘:纥:
 흘:讫:
 흘:龁:
-흘:疙:쥐부스럼 흘
-흘:齕:깨물 흘
 흘:肐:
 흘:趷:
 흘:釳:
 흡:潝:빨리 흐르는 소리 흡
 흡:歙:줄일 흡
 흡:噏:숨 들이쉴 흡
-흡:熻:
 흡:翖:翕과 同字
+흡:熻:
 흡:闟:
 흡:㩉:
 흡:㒆:
 희:熺:熹와 同字, 밝을 희
 희:囍:쌍희 희
 희:戲:탄식할 희, 희롱할 희
-희:戯:
-희:煕:
-희:餙:
-희:犠:
 희:嘻:웃을 희
 희:餼:꾸밀 희
 희:燹:
 희:欷:흐느낄 희
-희:俙:
 희:唏:슬퍼할 희
+희:暿:웃을 희
+희:咥:허허 웃을 희
+희:悕:슬퍼할 희
+희:豨:멧돼지 희
+희:爔:불 희
+희:黖:
+희:戯:
+희:煕:
+희:餙:
+희:犠:
+희:俙:
 희:巇:
 희:屭:
 희:狶:
-희:暿:웃을 희
-희:咥:허허 웃을 희
 희:㶊:
 희:饎:
-희:悕:슬퍼할 희
 희:浠:
 희:嚱:
 희:橲:
 희:蟢:
 희:誒:
 희:㬢:
-희:豨:멧돼지 희
 희:呬:
 희:桸:
 희:琋:
 희:牺:
 희:诶:
 희:饩:
-희:爔:불 희
-희:黖:
 희:屓:
 희:忥:
 희:怬:
 힌디어:힌디語:
 힐:詰:물을 힐, 힐문할 힐
 힐:黠:약을 힐
-힐:肹:
 힐:頡:곧은목 힐
 힐:纈:홀치기염색 힐
+힐:犵:오랑캐이름 힐
+힐:襭:옷자락 꽂을 힐
+힐:肹:
 힐:擷:
 힐:肸:
 힐:撷:
 힐:缬:
 힐:诘:
 힐:颉:
-힐:犵:오랑캐이름 힐
-힐:襭:옷자락 꽂을 힐
 힐:恄:
 힐:欯:
 힐:翓:
old mode 100755 (executable)
new mode 100644 (file)
index bd9770f..e3213c4
@@ -4,6 +4,7 @@ libhangulinclude_HEADERS = hangul.h
 
 lib_LTLIBRARIES = libhangul.la
 noinst_HEADERS = \
+       hangul-gettext.h \
        hangulkeyboard.h \
        hangulinternals.h \
        hanjacompatible.h
@@ -14,6 +15,7 @@ libhangul_la_SOURCES = \
        hanja.c
 
 libhangul_la_CFLAGS = \
+    -DLOCALEDIR=\"$(localedir)\" \
     -DLIBHANGUL_DEFAULT_HANJA_DIC=\"$(datadir)/libhangul/hanja/hanja.txt\"
 
 libhangul_la_LDFLAGS = -version-info $(LIBHANGUL_CURRENT):$(LIBHANGUL_REVISION):$(LIBHANGUL_AGE)
diff --git a/hangul/hangul-gettext.h b/hangul/hangul-gettext.h
new file mode 100644 (file)
index 0000000..05606a2
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef libhangul_hangul_gettext_h
+#define libhangul_hangul_gettext_h
+
+#ifdef ENABLE_NLS
+
+#include <libintl.h>
+
+#define _(x)       dgettext(GETTEXT_PACKAGE, x)
+#define N_(x)      x
+
+#else /* ENABLE_NLS */
+
+#define _(x)       (x)
+#define N_(x)      x
+
+#endif /* ENABLE_NLS */
+
+#endif // libhangul_hangul_gettext_h
index 26e18710867b1221d1fcb1a4d48a2a466a5c09f9..c308ed7e214fd3b97b4829d5b65571f2af501d92 100644 (file)
@@ -79,6 +79,15 @@ typedef struct _HangulCombination     HangulCombination;
 typedef struct _HangulBuffer          HangulBuffer;
 typedef struct _HangulInputContext    HangulInputContext;
 
+typedef void   (*HangulOnTranslate)  (HangulInputContext*,
+                                     int,
+                                     ucschar*,
+                                     void*);
+typedef bool   (*HangulOnTransition) (HangulInputContext*,
+                                     ucschar,
+                                     const ucschar*,
+                                     void*);
+
 enum {
     HANGUL_OUTPUT_SYLLABLE,
     HANGUL_OUTPUT_JAMO
@@ -114,6 +123,7 @@ bool hangul_ic_is_empty(HangulInputContext *hic);
 bool hangul_ic_has_choseong(HangulInputContext *hic);
 bool hangul_ic_has_jungseong(HangulInputContext *hic);
 bool hangul_ic_has_jongseong(HangulInputContext *hic);
+bool hangul_ic_is_transliteration(HangulInputContext *hic);
 
 void hangul_ic_set_output_mode(HangulInputContext *hic, int mode);
 void hangul_ic_set_keyboard(HangulInputContext *hic,
@@ -124,6 +134,16 @@ void hangul_ic_set_combination(HangulInputContext *hic,
                               const HangulCombination *combination);
 void hangul_ic_connect_callback(HangulInputContext* hic, const char* event,
                                void* callback, void* user_data);
+void hangul_ic_connect_translate (HangulInputContext* hic,
+                             HangulOnTranslate callback,
+                             void* user_data);
+void hangul_ic_connect_transition(HangulInputContext* hic,
+                             HangulOnTransition callback,
+                             void* user_data);
+
+unsigned    hangul_ic_get_n_keyboards();
+const char* hangul_ic_get_keyboard_id(unsigned index_);
+const char* hangul_ic_get_keyboard_name(unsigned index_);
 
 const ucschar* hangul_ic_get_preedit_string(HangulInputContext *hic);
 const ucschar* hangul_ic_get_commit_string(HangulInputContext *hic);
@@ -152,23 +172,6 @@ const char*  hanja_get_key(const Hanja* hanja);
 const char*  hanja_get_value(const Hanja* hanja);
 const char*  hanja_get_comment(const Hanja* hanja);
 
-
-/* deprecated */
-bool hangul_is_jaso(ucschar c) LIBHANGUL_DEPRECATED;
-ucschar hangul_jaso_to_jamo(ucschar ch) LIBHANGUL_DEPRECATED;
-ucschar hangul_jaso_to_syllable(ucschar choseong,
-                               ucschar jungseong,
-                               ucschar jongseong) LIBHANGUL_DEPRECATED;
-void    hangul_syllable_to_jaso(ucschar syllable,
-                               ucschar* choseong,
-                               ucschar* jungseong,
-                               ucschar* jongseong) LIBHANGUL_DEPRECATED;
-typedef bool (*HangulICFilter) (ucschar*, ucschar, ucschar, ucschar, void*);
-void hangul_ic_set_filter(HangulInputContext *hic,
-                         HangulICFilter func, void *user_data) LIBHANGUL_DEPRECATED;
-int  hangul_ic_dvorak_to_qwerty(int qwerty) LIBHANGUL_DEPRECATED;
-
-
 #ifdef __cplusplus
 }
 #endif
index 4bda161685c3e14564038f6dd808e3fb365835f6..53ada66dec42081d3a9273a01e362679c8ea542c 100644 (file)
@@ -85,7 +85,7 @@ hangul_is_choseong(ucschar c)
 bool
 hangul_is_jungseong(ucschar c)
 {
-    return (c >= 0x1161 && c <= 0x11a2) ||
+    return (c >= 0x1160 && c <= 0x11a7) ||
           (c >= 0xd7b0 && c <= 0xd7c6);
 }
 
@@ -101,7 +101,7 @@ hangul_is_jungseong(ucschar c)
 bool
 hangul_is_jongseong(ucschar c)
 {
-    return (c >= 0x11a8 && c <= 0x11f9) ||
+    return (c >= 0x11a8 && c <= 0x11ff) ||
           (c >= 0xd7cb && c <= 0xd7fb);
 }
 
@@ -176,13 +176,6 @@ hangul_is_jamo(ucschar c)
           hangul_is_jongseong(c);
 }
 
-/** @deprecated 이 함수 대신 hangul_is_jamo()함수를 사용한다. */
-bool
-hangul_is_jaso(ucschar c)
-{
-    return hangul_is_jamo(c);
-}
-
 /**
  * @ingroup hangulctype
  * @brief 호환 자모인지 확인
@@ -379,33 +372,33 @@ hangul_jamo_to_cjamo(ucschar c)
        0x0000,     /* 0x11a5 */
        0x0000,     /* 0x11a6 */
        0x0000,     /* 0x11a7 */
-       0x0000,     /* 0x11a8 */
-       0x0000,     /* 0x11a9 */
-       0x3133,     /* 0x11aa */
-       0x0000,     /* 0x11ab */
-       0x3135,     /* 0x11ac */
-       0x3136,     /* 0x11ad */
-       0x0000,     /* 0x11ae */
-       0x0000,     /* 0x11af */
-       0x313a,     /* 0x11b0 */
-       0x313b,     /* 0x11b1 */
-       0x313c,     /* 0x11b2 */
-       0x313d,     /* 0x11b3 */
-       0x313e,     /* 0x11b4 */
-       0x313f,     /* 0x11b5 */
-       0x0000,     /* 0x11b6 */
-       0x0000,     /* 0x11b7 */
-       0x0000,     /* 0x11b8 */
-       0x0000,     /* 0x11b9 */
-       0x0000,     /* 0x11ba */
-       0x0000,     /* 0x11bb */
-       0x0000,     /* 0x11bc */
-       0x0000,     /* 0x11bd */
-       0x0000,     /* 0x11be */
-       0x0000,     /* 0x11bf */
-       0x0000,     /* 0x11c0 */
-       0x0000,     /* 0x11c1 */
-       0x0000,     /* 0x11c2 */
+       0x3131,     /* 0x11a8 */
+       0x3132,     /* 0x11a9 */
+       0x3133,     /* 0x11aa */
+       0x3134,     /* 0x11ab */
+       0x3135,     /* 0x11ac */
+       0x3136,     /* 0x11ad */
+       0x3137,     /* 0x11ae */
+       0x3139,     /* 0x11af */
+       0x313a,     /* 0x11b0 */
+       0x313b,     /* 0x11b1 */
+       0x313c,     /* 0x11b2 */
+       0x313d,     /* 0x11b3 */
+       0x313e,     /* 0x11b4 */
+       0x313f,     /* 0x11b5 */
+       0x3140,     /* 0x11b6 */
+       0x3141,     /* 0x11b7 */
+       0x3142,     /* 0x11b8 */
+       0x3144,     /* 0x11b9 */
+       0x3145,     /* 0x11ba */
+       0x3146,     /* 0x11bb */
+       0x3147,     /* 0x11bc */
+       0x3148,     /* 0x11bd */
+       0x314a,     /* 0x11be */
+       0x314b,     /* 0x11bf */
+       0x314c,     /* 0x11c0 */
+       0x314d,     /* 0x11c1 */
+       0x314e,     /* 0x11c2 */
        0x0000,     /* 0x11c3 */
        0x0000,     /* 0x11c4 */
        0x0000,     /* 0x11c5 */
@@ -592,77 +585,300 @@ hangul_jamo_to_cjamo(ucschar c)
     return ret;
 }
 
-/** @deprecated 이 함수 대신 hangul_jamo_to_cjamo()함수를 사용한다. */
-ucschar
-hangul_jaso_to_jamo(ucschar c)
-{
-    return hangul_jamo_to_cjamo(c);
-}
-
 ucschar
 hangul_choseong_to_jongseong(ucschar c)
 {
-    static ucschar table[] = {
-       0x11a8,  /* choseong kiyeok      -> jongseong kiyeok      */
-       0x11a9,  /* choseong ssangkiyeok -> jongseong ssangkiyeok */
-       0x11ab,  /* choseong nieun       -> jongseong nieun       */
-       0x11ae,  /* choseong tikeut      -> jongseong tikeut      */
-       0x0,     /* choseong ssangtikeut -> jongseong tikeut      */
-       0x11af,  /* choseong rieul       -> jongseong rieul       */
-       0x11b7,  /* choseong mieum       -> jongseong mieum       */
-       0x11b8,  /* choseong pieup       -> jongseong pieup       */
-       0x0,     /* choseong ssangpieup  -> jongseong pieup       */
-       0x11ba,  /* choseong sios        -> jongseong sios        */
-       0x11bb,  /* choseong ssangsios   -> jongseong ssangsios   */
-       0x11bc,  /* choseong ieung       -> jongseong ieung       */
-       0x11bd,  /* choseong cieuc       -> jongseong cieuc       */
-       0x0,     /* choseong ssangcieuc  -> jongseong cieuc       */
-       0x11be,  /* choseong chieuch     -> jongseong chieuch     */
-       0x11bf,  /* choseong khieukh     -> jongseong khieukh     */
-       0x11c0,  /* choseong thieuth     -> jongseong thieuth     */
-       0x11c1,  /* choseong phieuph     -> jongseong phieuph     */
-       0x11c2   /* choseong hieuh       -> jongseong hieuh       */
+    static const ucschar table[] = {
+       0x11a8,  /* cho kiyeok               -> jong kiyeok               */
+       0x11a9,  /* cho ssangkiyeok          -> jong ssangkiyeok          */
+       0x11ab,  /* cho nieun                -> jong nieun                */
+       0x11ae,  /* cho tikeut               -> jong tikeut               */
+       0xd7cd,  /* cho ssangtikeut          -> jong ssangtikeut          */
+       0x11af,  /* cho rieul                -> jong rieul                */
+       0x11b7,  /* cho mieum                -> jong mieum                */
+       0x11b8,  /* cho pieup                -> jong pieup                */
+       0xd7e6,  /* cho ssangpieup           -> jong ssangpieup           */
+       0x11ba,  /* cho sios                 -> jong sios                 */
+       0x11bb,  /* cho ssangsios            -> jong ssangsios            */
+       0x11bc,  /* cho ieung                -> jong ieung                */
+       0x11bd,  /* cho cieuc                -> jong cieuc                */
+       0xd7f9,  /* cho ssangcieuc           -> jong ssangcieuc           */
+       0x11be,  /* cho chieuch              -> jong chieuch              */
+       0x11bf,  /* cho khieukh              -> jong khieukh              */
+       0x11c0,  /* cho thieuth              -> jong thieuth              */
+       0x11c1,  /* cho phieuph              -> jong phieuph              */
+       0x11c2,  /* cho hieuh                -> jong hieuh                */
+       0x11c5,  /* cho nieun-kiyeok         -> jong nieun-kiyeok         */
+       0x11ff,  /* cho ssangnieun           -> jong ssangnieun           */
+       0x11c6,  /* cho nieun-tikeut         -> jong nieun-tikeut         */
+       0,       /* cho nieun-pieup                                      */
+       0x11ca,  /* cho tikeut-kiyeok        -> jong tikeut-kiyeok        */
+       0x11cd,  /* cho rieul-nieun          -> jong rieul-nieun          */
+       0x11d0,  /* cho ssangrieul           -> jong ssangrieul           */
+       0x11b6,  /* cho rieul-hieuh          -> jong rieul-hieuh          */
+       0xd7dd,  /* cho kapyeounrieul        -> jong kapyeounrieul        */
+       0x11dc,  /* cho mieum-pieup          -> jong mieum-pieup          */
+       0x11e2,  /* cho kapyeounmieum        -> jong kapyeounmieum        */
+       0,       /* cho pieup-kiyeok                                     */
+       0,       /* cho pieup-nieun                                      */
+       0xd7e3,  /* cho pieup-tikeut         -> jong pieup-tikeut         */
+       0x11b9,  /* cho pieup-sios           -> jong pieup-sios           */
+       0,       /* cho pieup-sios-kiyeok                                */
+       0xd7e7,  /* cho pieup-sios-tikeut    -> jong pieup-sios-tikeut    */
+       0,       /* cho pieup-sios-pieup                                 */
+       0,       /* cho pieup-ssangsios                                  */
+       0,       /* cho pieup-sios-cieuc                                 */
+       0xd7e8,  /* cho pieup-cieuc          -> jong pieup-cieuc          */
+       0xd7e9,  /* cho pieup-chieuch        -> jong pieup-chieuch        */
+       0,       /* cho pieup-thieuth                                    */
+       0x11e4,  /* cho pieup-phieuph        -> jong pieup-phieuph        */
+       0x11e6,  /* cho kapyeounpieup        -> jong kapyeounpieup        */
+       0,       /* cho kapyeounssangpieup                               */
+       0x11e7,  /* cho sios-kiyeok          -> jong sios-kiyeok          */
+       0,       /* cho sios-nieun                                       */
+       0x11e8,  /* cho sios-tikeut          -> jong sios-tikeut          */
+       0x11e9,  /* cho sios-rieul           -> jong sios-rieul           */
+       0xd7ea,  /* cho sios-mieum           -> jong sios-mieum           */
+       0x11ea,  /* cho sios-pieup           -> jong sios-pieup           */
+       0,       /* cho sios-pieup-kiyeok                                */
+       0,       /* cho sios-ssangsios                                   */
+       0,       /* cho sios-ieung                                       */
+       0xd7ef,  /* cho sios-cieuc           -> jong sios-cieuc           */
+       0xd7f0,  /* cho sios-chieuch         -> jong sios-chieuch         */
+       0,       /* cho sios-khieukh                                     */
+       0xd7f1,  /* cho sios-thieuth         -> jong sios-thieuth         */
+       0,       /* cho sios-phieuph                                     */
+       0xd7f2,  /* cho sios-hieuh           -> jong sios-hieuh           */
+       0,       /* cho chitueumsios                                     */
+       0,       /* cho chitueumssangsios                                */
+       0,       /* cho ceongchieumsios                                  */
+       0,       /* cho ceongchieumssangsios                             */
+       0x11eb,  /* cho pansios              -> jong pansios              */
+       0x11ec,  /* cho ieung-kiyeok         -> jong ieung-kiyeok         */
+       0,       /* cho ieung-tikeut                                     */
+       0,       /* cho ieung-mieum                                      */
+       0,       /* cho ieung-pieup                                      */
+       0,       /* cho ieung-sios                                       */
+       0,       /* cho ieung-pansios                                    */
+       0x11ee,  /* cho ssangieung           -> jong ssangieung           */
+       0,       /* cho ieung-cieuc                                      */
+       0,       /* cho ieung-chieuch                                    */
+       0,       /* cho ieung-thieuth                                    */
+       0,       /* cho ieung-phieuph                                    */
+       0x11f0,  /* cho yesieung             -> jong yesieung             */
+       0,       /* cho cieuc-ieung                                      */
+       0,       /* cho chitueumcieuc                                    */
+       0,       /* cho chitueumssangcieuc                               */
+       0,       /* cho ceongchieumcieuc                                 */
+       0,       /* cho ceongchieumssangcieuc                            */
+       0,       /* cho chieuch-khieukh                                  */
+       0,       /* cho chieuch-hieuh                                    */
+       0,       /* cho chitueumchieuch                                  */
+       0,       /* cho ceongchieumchieuch                               */
+       0x11f3,  /* cho phieuph-pieup        -> jong phieuph-pieup        */
+       0x11f4,  /* cho kapyeounphieuph      -> jong kapyeounphieuph      */
+       0,       /* cho ssanghieuh                                       */
+       0x11f9,  /* cho yeorinhieuh          -> jong yeorinhieuh          */
+       0,       /* cho kiyeok-tikeut                                    */
+       0x11c7,  /* cho nieun-sios           -> jong nieun-sios           */
+       0x11ac,  /* cho nieun-cieuc          -> jong nieun-cieuc          */
+       0x11ad,  /* cho nieun-hieuh          -> jong nieun-hieuh          */
+       0x11cb,  /* cho tikeut-rieul         -> jong tikeut-rieul         */
+       0,       /* cho filler                                           */
     };
-    if (c < 0x1100 || c > 0x1112)
-       return 0;
-    return table[c - 0x1100];
+
+    static const ucschar table_ext_a[] = {
+       0,       /* cho tikeut-mieum                                     */
+       0xd7cf,  /* cho tikeut-pieup         -> jong tikeut-pieup         */
+       0xd7d0,  /* cho tikeut-sios          -> jong tikeut-sios          */
+       0xd7d2,  /* cho tikeut-cieuc         -> jong tikeut-cieuc         */
+       0x11b0,  /* cho rieul-kiyeok         -> jong rieul-kiyeok         */
+       0xd7d5,  /* cho rieul-ssangkiyeok    -> jong rieul-ssangkiyeok    */
+       0x11ce,  /* cho rieul-tikeut         -> jong rieul-tikeut         */
+       0,       /* cho rieul-ssangtikeut                                */
+       0x11b1,  /* cho rieul-mieum          -> jong rieul-mieum          */
+       0x11b2,  /* cho rieul-pieup          -> jong rieul-pieup          */
+       0,       /* cho rieul-ssangpieup                                 */
+       0x11d5,  /* cho rieul-kapyeounpieup  -> jong rieul-kapyeounpieup  */
+       0x11b3,  /* cho rieul-sios           -> jong rieul-sios           */
+       0,       /* cho rieul-cieuc                                      */
+       0x11d8,  /* cho rieul-khieukh        -> jong rieul-khieukh        */
+       0x11da,  /* cho mieum-kiyeok         -> jong mieum-kiyeok         */
+       0,       /* cho mieum-tikeut                                     */
+       0x11dd,  /* cho mieum-sios           -> jong mieum-sios           */
+       0,       /* cho pieup-sios-thieuth                               */
+       0,       /* cho pieup-khieukh                                    */
+       0x11e5,  /* cho pieup-hieuh          -> jong pieup-hieuh          */
+       0,       /* cho ssangsios-pieup                                  */
+       0,       /* cho ieung-rieul                                      */
+       0,       /* cho ieung-hieuh                                      */
+       0,       /* cho ssangcieuc-hieuh                                 */
+       0,       /* cho ssangthieuth                                     */
+       0,       /* cho phieuph-hieuh                                    */
+       0,       /* cho hieuh-sios                                       */
+       0,       /* cho ssangyeorinhieuh                                 */
+    };
+
+    if (c >= 0x1100 && c <= 0x115e)
+       return table[c - 0x1100];
+    else if (c >= 0xa960 && c <= 0xa97c)
+       return table_ext_a[c - 0xa960];
+
+    return 0;
 }
 
 ucschar
 hangul_jongseong_to_choseong(ucschar c)
 {
-    static ucschar table[] = {
-      0x1100,  /* jongseong kiyeok        -> choseong kiyeok       */
-      0x1101,  /* jongseong ssangkiyeok   -> choseong ssangkiyeok  */
-      0x1109,  /* jongseong kiyeok-sios   -> choseong sios         */
-      0x1102,  /* jongseong nieun         -> choseong nieun        */
-      0x110c,  /* jongseong nieun-cieuc   -> choseong cieuc        */
-      0x1112,  /* jongseong nieun-hieuh   -> choseong hieuh        */
-      0x1103,  /* jongseong tikeut        -> choseong tikeut       */
-      0x1105,  /* jongseong rieul         -> choseong rieul        */
-      0x1100,  /* jongseong rieul-kiyeok  -> choseong kiyeok       */
-      0x1106,  /* jongseong rieul-mieum   -> choseong mieum        */
-      0x1107,  /* jongseong rieul-pieup   -> choseong pieup        */
-      0x1109,  /* jongseong rieul-sios    -> choseong sios         */
-      0x1110,  /* jongseong rieul-thieuth -> choseong thieuth      */
-      0x1111,  /* jongseong rieul-phieuph -> choseong phieuph      */
-      0x1112,  /* jongseong rieul-hieuh   -> choseong hieuh        */
-      0x1106,  /* jongseong mieum         -> choseong mieum        */
-      0x1107,  /* jongseong pieup         -> choseong pieup        */
-      0x1109,  /* jongseong pieup-sios    -> choseong sios         */
-      0x1109,  /* jongseong sios          -> choseong sios         */
-      0x110a,  /* jongseong ssangsios     -> choseong ssangsios    */
-      0x110b,  /* jongseong ieung         -> choseong ieung        */
-      0x110c,  /* jongseong cieuc         -> choseong cieuc        */
-      0x110e,  /* jongseong chieuch       -> choseong chieuch      */
-      0x110f,  /* jongseong khieukh       -> choseong khieukh      */
-      0x1110,  /* jongseong thieuth       -> choseong thieuth      */
-      0x1111,  /* jongseong phieuph       -> choseong phieuph      */
-      0x1112   /* jongseong hieuh         -> choseong hieuh        */
+    static const ucschar table[] = {
+       0x1100,  /* jong kiyeok               -> cho kiyeok               */
+       0x1101,  /* jong ssangkiyeok          -> cho ssangkiyeok          */
+       0,       /* jong kiyeok-sios                                      */
+       0x1102,  /* jong nieun                -> cho nieun                */
+       0x115c,  /* jong nieun-cieuc          -> cho nieun-cieuc          */
+       0x115d,  /* jong nieun-hieuh          -> cho nieun-hieuh          */
+       0x1103,  /* jong tikeut               -> cho tikeut               */
+       0x1105,  /* jong rieul                -> cho rieul                */
+       0xa964,  /* jong rieul-kiyeok         -> cho rieul-kiyeok         */
+       0xa968,  /* jong rieul-mieum          -> cho rieul-mieum          */
+       0xa969,  /* jong rieul-pieup          -> cho rieul-pieup          */
+       0xa96c,  /* jong rieul-sios           -> cho rieul-sios           */
+       0,       /* jong rieul-thieuth                                    */
+       0,       /* jong rieul-phieuph                                    */
+       0x111a,  /* jong rieul-hieuh          -> cho rieul-hieuh          */
+       0x1106,  /* jong mieum                -> cho mieum                */
+       0x1107,  /* jong pieup                -> cho pieup                */
+       0x1121,  /* jong pieup-sios           -> cho pieup-sios           */
+       0x1109,  /* jong sios                 -> cho sios                 */
+       0x110a,  /* jong ssangsios            -> cho ssangsios            */
+       0x110b,  /* jong ieung                -> cho ieung                */
+       0x110c,  /* jong cieuc                -> cho cieuc                */
+       0x110e,  /* jong chieuch              -> cho chieuch              */
+       0x110f,  /* jong khieukh              -> cho khieukh              */
+       0x1110,  /* jong thieuth              -> cho thieuth              */
+       0x1111,  /* jong phieuph              -> cho phieuph              */
+       0x1112,  /* jong hieuh                -> cho hieuh                */
+       0,       /* jong kiyeok-rieul                                     */
+       0,       /* jong kiyeok-sios-kiyeok                               */
+       0x1113,  /* jong nieun-kiyeok         -> cho nieun-kiyeok         */
+       0x1115,  /* jong nieun-tikeut         -> cho nieun-tikeut         */
+       0x115b,  /* jong nieun-sios           -> cho nieun-sios           */
+       0,       /* jong nieun-pansios                                    */
+       0,       /* jong nieun-thieuth                                    */
+       0x1117,  /* jong tikeut-kiyeok        -> cho tikeut-kiyeok        */
+       0x115e,  /* jong tikeut-rieul         -> cho tikeut-rieul         */
+       0,       /* jong rieul-kiyeok-sios                                */
+       0x1118,  /* jong rieul-nieun          -> cho rieul-nieun          */
+       0xa966,  /* jong rieul-tikeut         -> cho rieul-tikeut         */
+       0,       /* jong rieul-tikeut-hieuh                               */
+       0x1119,  /* jong ssangrieul           -> cho ssangrieul           */
+       0,       /* jong rieul-mieum-kiyeok                               */
+       0,       /* jong rieul-mieum-sios                                 */
+       0,       /* jong rieul-pieup-sios                                 */
+       0,       /* jong rieul-pieup-hieuh                                */
+       0xa96b,  /* jong rieul-kapyeounpieup  -> cho rieul-kapyeounpieup  */
+       0,       /* jong rieul-ssangsios                                  */
+       0,       /* jong rieul-pansios                                    */
+       0xa96e,  /* jong rieul-khieukh        -> cho rieul-khieukh        */
+       0,       /* jong rieul-yeorinhieuh                                */
+       0xa96f,  /* jong mieum-kiyeok         -> cho mieum-kiyeok         */
+       0,       /* jong mieum-rieul                                      */
+       0x111c,  /* jong mieum-pieup          -> cho mieum-pieup          */
+       0xa971,  /* jong mieum-sios           -> cho mieum-sios           */
+       0,       /* jong mieum-ssangsios                                  */
+       0,       /* jong mieum-pansios                                    */
+       0,       /* jong mieum-chieuch                                    */
+       0,       /* jong mieum-hieuh                                      */
+       0x111d,  /* jong kapyeounmieum        -> cho kapyeounmieum        */
+       0,       /* jong pieup-rieul                                      */
+       0x112a,  /* jong pieup-phieuph        -> cho pieup-phieuph        */
+       0xa974,  /* jong pieup-hieuh          -> cho pieup-hieuh          */
+       0x112b,  /* jong kapyeounpieup        -> cho kapyeounpieup        */
+       0x112d,  /* jong sios-kiyeok          -> cho sios-kiyeok          */
+       0x112f,  /* jong sios-tikeut          -> cho sios-tikeut          */
+       0x1130,  /* jong sios-rieul           -> cho sios-rieul           */
+       0x1132,  /* jong sios-pieup           -> cho sios-pieup           */
+       0x1140,  /* jong pansios              -> cho pansios              */
+       0x1141,  /* jong ieung-kiyeok         -> cho ieung-kiyeok         */
+       0,       /* jong ieung-ssangkiyeok                                */
+       0x1147,  /* jong ssangieung           -> cho ssangieung           */
+       0,       /* jong ieung-khieukh                                    */
+       0x114c,  /* jong yesieung             -> cho yesieung             */
+       0,       /* jong yesieung-sios                                    */
+       0,       /* jong yesieung-pansios                                 */
+       0x1156,  /* jong phieuph-pieup        -> cho phieuph-pieup        */
+       0x1157,  /* jong kapyeounphieuph      -> cho kapyeounphieuph      */
+       0,       /* jong hieuh-nieun                                      */
+       0,       /* jong hieuh-rieul                                      */
+       0,       /* jong hieuh-mieum                                      */
+       0,       /* jong hieuh-pieup                                      */
+       0x1159,  /* jong yeorinhieuh          -> cho yeorinhieuh          */
+       0,       /* jong kiyeok-nieun                                     */
+       0,       /* jong kiyeok-pieup                                     */
+       0,       /* jong kiyeok-chieuch                                   */
+       0,       /* jong kiyeok-khieukh                                   */
+       0,       /* jong kiyeok-hieuh                                     */
+       0x1114,  /* jong ssangnieun           -> cho ssangnieun           */
     };
-    if (c < 0x11a8 || c > 0x11c2)
-       return 0;
-    return table[c - 0x11a8];
+
+    static const ucschar table_ext_b[] = {
+       0,       /* jong nieun-rieul                                      */
+       0,       /* jong nieun-chieuch                                    */
+       0x1104,  /* jong ssangtikeut          -> cho ssangtikeut          */
+       0,       /* jong ssangtikeut-pieup                                */
+       0xa961,  /* jong tikeut-pieup         -> cho tikeut-pieup         */
+       0xa962,  /* jong tikeut-sios          -> cho tikeut-sios          */
+       0,       /* jong tikeut-sios-kiyeok                               */
+       0xa963,  /* jong tikeut-cieuc         -> cho tikeut-cieuc         */
+       0,       /* jong tikeut-chieuch                                   */
+       0,       /* jong tikeut-thieuth                                   */
+       0xa965,  /* jong rieul-ssangkiyeok    -> cho rieul-ssangkiyeok    */
+       0,       /* jong rieul-kiyeok-hieuh                               */
+       0,       /* jong ssangrieul-khieukh                               */
+       0,       /* jong rieul-mieum-hieuh                                */
+       0,       /* jong rieul-pieup-tikeut                               */
+       0,       /* jong rieul-pieup-phieuph                              */
+       0,       /* jong rieul-yesieung                                   */
+       0,       /* jong rieul-yeorinhieuh-hieuh                          */
+       0x111b,  /* jong kapyeounrieul        -> cho kapyeounrieul        */
+       0,       /* jong mieum-nieun                                      */
+       0,       /* jong mieum-ssangnieun                                 */
+       0,       /* jong ssangmieum                                       */
+       0,       /* jong mieum-pieup-sios                                 */
+       0,       /* jong mieum-cieuc                                      */
+       0x1120,  /* jong pieup-tikeut         -> cho pieup-tikeut         */
+       0,       /* jong pieup-rieul-phieuph                              */
+       0,       /* jong pieup-mieum                                      */
+       0x1108,  /* jong ssangpieup           -> cho ssangpieup           */
+       0x1123,  /* jong pieup-sios-tikeut    -> cho pieup-sios-tikeut    */
+       0x1127,  /* jong pieup-cieuc          -> cho pieup-cieuc          */
+       0x1128,  /* jong pieup-chieuch        -> cho pieup-chieuch        */
+       0x1131,  /* jong sios-mieum           -> cho sios-mieum           */
+       0,       /* jong sios-kapyeounpieup                               */
+       0,       /* jong ssangsios-kiyeok                                 */
+       0,       /* jong ssangsios-tikeut                                 */
+       0,       /* jong sios-pansios                                     */
+       0x1136,  /* jong sios-cieuc           -> cho sios-cieuc           */
+       0x1137,  /* jong sios-chieuch         -> cho sios-chieuch         */
+       0x1139,  /* jong sios-thieuth         -> cho sios-thieuth         */
+       0x113b,  /* jong sios-hieuh           -> cho sios-hieuh           */
+       0,       /* jong pansios-pieup                                    */
+       0,       /* jong pansios-kapyeounpieup                            */
+       0,       /* jong yesieung-mieum                                   */
+       0,       /* jong yesieung-hieuh                                   */
+       0,       /* jong cieuc-pieup                                      */
+       0,       /* jong cieuc-ssangpieup                                 */
+       0x110d,  /* jong ssangcieuc           -> cho ssangcieuc           */
+       0,       /* jong phieuph-sios                                     */
+       0,       /* jong phieuph-thieuth                                  */
+    };
+
+    if (c >= 0x11a8 && c <= 0x11ff)
+       return table[c - 0x11a8];
+    else if (c >= 0xd7cb && c <= 0xd7fb)
+       return table_ext_b[c - 0xd7cb];
+
+    return 0;
 }
 
 void
@@ -702,6 +918,334 @@ hangul_jongseong_dicompose(ucschar c, ucschar* jong, ucschar* cho)
     *cho  = table[c - 0x11a8][1];
 }
 
+static int
+hangul_jongseong_get_ncomponent(ucschar jong)
+{
+    static const char table[] = {
+       1, /* kiyeok                            */
+       2, /* ssangkiyeok                       */
+       2, /* kiyeok-sios                       */
+       1, /* nieun                             */
+       2, /* nieun-cieuc                       */
+       2, /* nieun-hieuh                       */
+       1, /* tikeut                            */
+       1, /* rieul                             */
+       2, /* rieul-kiyeok                      */
+       2, /* rieul-mieum                       */
+       2, /* rieul-pieup                       */
+       2, /* rieul-sios                        */
+       2, /* rieul-thieuth                     */
+       2, /* rieul-phieuph                     */
+       2, /* rieul-hieuh                       */
+       1, /* mieum                             */
+       1, /* pieup                             */
+       2, /* pieup-sios                        */
+       1, /* sios                              */
+       2, /* ssangsios                         */
+       1, /* ieung                             */
+       1, /* cieuc                             */
+       1, /* chieuch                           */
+       1, /* khieukh                           */
+       1, /* thieuth                           */
+       1, /* phieuph                           */
+       1, /* hieuh                             */
+       2, /* kiyeok-rieul                      */
+       3, /* kiyeok-sios-kiyeok                */
+       2, /* nieun-kiyeok                      */
+       2, /* nieun-tikeut                      */
+       2, /* nieun-sios                        */
+       2, /* nieun-pansios                     */
+       2, /* nieun-thieuth                     */
+       2, /* tikeut-kiyeok                     */
+       2, /* tikeut-rieul                      */
+       3, /* rieul-kiyeok-sios                 */
+       2, /* rieul-nieun                       */
+       2, /* rieul-tikeut                      */
+       3, /* rieul-tikeut-hieuh                */
+       2, /* ssangrieul                        */
+       3, /* rieul-mieum-kiyeok                */
+       3, /* rieul-mieum-sios                  */
+       3, /* rieul-pieup-sios                  */
+       3, /* rieul-pieup-hieuh                 */
+       3, /* rieul-kapyeounpieup               */
+       3, /* rieul-ssangsios                   */
+       2, /* rieul-pansios                     */
+       2, /* rieul-khieukh                     */
+       2, /* rieul-yeorinhieuh                 */
+       2, /* mieum-kiyeok                      */
+       2, /* mieum-rieul                       */
+       2, /* mieum-pieup                       */
+       2, /* mieum-sios                        */
+       3, /* mieum-ssangsios                   */
+       2, /* mieum-pansios                     */
+       2, /* mieum-chieuch                     */
+       2, /* mieum-hieuh                       */
+       2, /* kapyeounmieum                     */
+       2, /* pieup-rieul                       */
+       2, /* pieup-phieuph                     */
+       2, /* pieup-hieuh                       */
+       2, /* kapyeounpieup                     */
+       2, /* sios-kiyeok                       */
+       2, /* sios-tikeut                       */
+       2, /* sios-rieul                        */
+       2, /* sios-pieup                        */
+       1, /* pansios                           */
+       2, /* ieung-kiyeok                      */
+       3, /* ieung-ssangkiyeok                 */
+       2, /* ssangieung                        */
+       2, /* ieung-khieukh                     */
+       1, /* yesieung                          */
+       2, /* yesieung-sios                     */
+       2, /* yesieung-pansios                  */
+       2, /* phieuph-pieup                     */
+       2, /* kapyeounphieuph                   */
+       2, /* hieuh-nieun                       */
+       2, /* hieuh-rieul                       */
+       2, /* hieuh-mieum                       */
+       2, /* hieuh-pieup                       */
+       1, /* yeorinhieuh                       */
+       2, /* kiyeok-nieun                      */
+       2, /* kiyeok-pieup                      */
+       2, /* kiyeok-chieuch                    */
+       2, /* kiyeok-khieukh                    */
+       2, /* kiyeok-hieuh                      */
+       2, /* ssangnieun                        */
+    };
+
+    static const char table_ext_b[] = {
+       2, /* nieun-rieul                       */
+       2, /* nieun-chieuch                     */
+       2, /* ssangtikeut                       */
+       3, /* ssangtikeut-pieup                 */
+       2, /* tikeut-pieup                      */
+       2, /* tikeut-sios                       */
+       3, /* tikeut-sios-kiyeok                */
+       2, /* tikeut-cieuc                      */
+       2, /* tikeut-chieuch                    */
+       2, /* tikeut-thieuth                    */
+       3, /* rieul-ssangkiyeok                 */
+       3, /* rieul-kiyeok-hieuh                */
+       3, /* ssangrieul-khieukh                */
+       3, /* rieul-mieum-hieuh                 */
+       3, /* rieul-pieup-tikeut                */
+       3, /* rieul-pieup-phieuph               */
+       2, /* rieul-yesieung                    */
+       3, /* rieul-yeorinhieuh-hieuh           */
+       2, /* kapyeounrieul                     */
+       2, /* mieum-nieun                       */
+       3, /* mieum-ssangnieun                  */
+       2, /* ssangmieum                        */
+       3, /* mieum-pieup-sios                  */
+       2, /* mieum-cieuc                       */
+       2, /* pieup-tikeut                      */
+       3, /* pieup-rieul-phieuph               */
+       2, /* pieup-mieum                       */
+       2, /* ssangpieup                        */
+       3, /* pieup-sios-tikeut                 */
+       2, /* pieup-cieuc                       */
+       2, /* pieup-chieuch                     */
+       2, /* sios-mieum                        */
+       3, /* sios-kapyeounpieup                */
+       3, /* ssangsios-kiyeok                  */
+       3, /* ssangsios-tikeut                  */
+       2, /* sios-pansios                      */
+       2, /* sios-cieuc                        */
+       2, /* sios-chieuch                      */
+       2, /* sios-thieuth                      */
+       2, /* sios-hieuh                        */
+       2, /* pansios-pieup                     */
+       3, /* pansios-kapyeounpieup             */
+       2, /* yesieung-mieum                    */
+       2, /* yesieung-hieuh                    */
+       2, /* cieuc-pieup                       */
+       3, /* cieuc-ssangpieup                  */
+       2, /* ssangcieuc                        */
+       2, /* phieuph-sios                      */
+       2, /* phieuph-thieuth                   */
+    };
+
+    if (jong >= 0x11a8 && jong <= 0x11ff) {
+       return table[jong - 0x11a8];
+    } else if (jong >= 0xd7cb && jong <= 0xd7fb) {
+       return table_ext_b[jong - 0xd7cb];
+    }
+
+    return 0;
+}
+
+ucschar
+hangul_jongseong_get_diff(ucschar prevjong, ucschar jong)
+{
+    static const ucschar table[][2] = {
+       { 0x1100, 0x1100 }, /* kiyeok: kiyeok, kiyeok                      */
+       { 0x1100, 0x1101 }, /* ssangkiyeok: kiyeok, ssangkiyeok            */
+       { 0x1109, 0      }, /* kiyeok-sios: sios                           */
+       { 0x1102, 0x1102 }, /* nieun: nieun, nieun                         */
+       { 0x110c, 0x115c }, /* nieun-cieuc: cieuc, nieun-cieuc             */
+       { 0x1112, 0x115d }, /* nieun-hieuh: hieuh, nieun-hieuh             */
+       { 0x1103, 0x1103 }, /* tikeut: tikeut, tikeut                      */
+       { 0x1105, 0x1105 }, /* rieul: rieul, rieul                         */
+       { 0x1100, 0xa964 }, /* rieul-kiyeok: kiyeok, rieul-kiyeok          */
+       { 0x1106, 0xa968 }, /* rieul-mieum: mieum, rieul-mieum             */
+       { 0x1107, 0xa969 }, /* rieul-pieup: pieup, rieul-pieup             */
+       { 0x1109, 0xa96c }, /* rieul-sios: sios, rieul-sios                */
+       { 0x1110, 0      }, /* rieul-thieuth: thieuth                      */
+       { 0x1111, 0      }, /* rieul-phieuph: phieuph                      */
+       { 0x1112, 0x111a }, /* rieul-hieuh: hieuh, rieul-hieuh             */
+       { 0x1106, 0x1106 }, /* mieum: mieum, mieum                         */
+       { 0x1107, 0x1107 }, /* pieup: pieup, pieup                         */
+       { 0x1109, 0x1121 }, /* pieup-sios: sios, pieup-sios                */
+       { 0x1109, 0x1109 }, /* sios: sios, sios                            */
+       { 0x1109, 0x110a }, /* ssangsios: sios, ssangsios                  */
+       { 0x110b, 0x110b }, /* ieung: ieung, ieung                         */
+       { 0x110c, 0x110c }, /* cieuc: cieuc, cieuc                         */
+       { 0x110e, 0x110e }, /* chieuch: chieuch, chieuch                   */
+       { 0x110f, 0x110f }, /* khieukh: khieukh, khieukh                   */
+       { 0x1110, 0x1110 }, /* thieuth: thieuth, thieuth                   */
+       { 0x1111, 0x1111 }, /* phieuph: phieuph, phieuph                   */
+       { 0x1112, 0x1112 }, /* hieuh: hieuh, hieuh                         */
+       { 0x1105, 0      }, /* kiyeok-rieul: rieul                         */
+       { 0x1100, 0x112d }, /* kiyeok-sios-kiyeok: kiyeok, sios-kiyeok     */
+       { 0x1100, 0x1113 }, /* nieun-kiyeok: kiyeok, nieun-kiyeok          */
+       { 0x1103, 0x1115 }, /* nieun-tikeut: tikeut, nieun-tikeut          */
+       { 0x1109, 0x115b }, /* nieun-sios: sios, nieun-sios                */
+       { 0x1140, 0      }, /* nieun-pansios: pansios                      */
+       { 0x1110, 0      }, /* nieun-thieuth: thieuth                      */
+       { 0x1100, 0x1117 }, /* tikeut-kiyeok: kiyeok, tikeut-kiyeok        */
+       { 0x1105, 0x115e }, /* tikeut-rieul: rieul, tikeut-rieul           */
+       { 0x1109, 0      }, /* rieul-kiyeok-sios: sios                     */
+       { 0x1102, 0x1118 }, /* rieul-nieun: nieun, rieul-nieun             */
+       { 0x1103, 0xa966 }, /* rieul-tikeut: tikeut, rieul-tikeut          */
+       { 0x1112, 0      }, /* rieul-tikeut-hieuh: hieuh                   */
+       { 0x1105, 0x1119 }, /* ssangrieul: rieul, ssangrieul               */
+       { 0x1100, 0xa96f }, /* rieul-mieum-kiyeok: kiyeok, mieum-kiyeok    */
+       { 0x1109, 0xa971 }, /* rieul-mieum-sios: sios, mieum-sios          */
+       { 0x1109, 0x1121 }, /* rieul-pieup-sios: sios, pieup-sios          */
+       { 0x1112, 0xa974 }, /* rieul-pieup-hieuh: hieuh, pieup-hieuh       */
+       { 0x110b, 0x112b }, /* rieul-kapyeounpieup: ieung, kapyeounpieup   */
+       { 0x1109, 0x110a }, /* rieul-ssangsios: sios, ssangsios            */
+       { 0x1140, 0      }, /* rieul-pansios: pansios                      */
+       { 0x110f, 0xa96e }, /* rieul-khieukh: khieukh, rieul-khieukh       */
+       { 0x1159, 0      }, /* rieul-yeorinhieuh: yeorinhieuh              */
+       { 0x1100, 0xa96f }, /* mieum-kiyeok: kiyeok, mieum-kiyeok          */
+       { 0x1105, 0      }, /* mieum-rieul: rieul                          */
+       { 0x1107, 0x111c }, /* mieum-pieup: pieup, mieum-pieup             */
+       { 0x1109, 0xa971 }, /* mieum-sios: sios, mieum-sios                */
+       { 0x1109, 0x110a }, /* mieum-ssangsios: sios, ssangsios            */
+       { 0x1140, 0      }, /* mieum-pansios: pansios                      */
+       { 0x110e, 0      }, /* mieum-chieuch: chieuch                      */
+       { 0x1112, 0      }, /* mieum-hieuh: hieuh                          */
+       { 0x110b, 0x111d }, /* kapyeounmieum: ieung, kapyeounmieum         */
+       { 0x1105, 0      }, /* pieup-rieul: rieul                          */
+       { 0x1111, 0x112a }, /* pieup-phieuph: phieuph, pieup-phieuph       */
+       { 0x1112, 0xa974 }, /* pieup-hieuh: hieuh, pieup-hieuh             */
+       { 0x110b, 0x112b }, /* kapyeounpieup: ieung, kapyeounpieup         */
+       { 0x1100, 0x112d }, /* sios-kiyeok: kiyeok, sios-kiyeok            */
+       { 0x1103, 0x112f }, /* sios-tikeut: tikeut, sios-tikeut            */
+       { 0x1105, 0x1130 }, /* sios-rieul: rieul, sios-rieul               */
+       { 0x1107, 0x1132 }, /* sios-pieup: pieup, sios-pieup               */
+       { 0x1140, 0x1140 }, /* pansios: pansios, pansios                   */
+       { 0x1100, 0      }, /* yesieung-kiyeok: kiyeok                     */
+       { 0x1100, 0x1101 }, /* yesieung-ssangkiyeok: kiyeok, ssangkiyeok   */
+       { 0x114c, 0      }, /* ssangyesieung: yesieung                     */
+       { 0x110f, 0      }, /* yesieung-khieukh: khieukh                   */
+       { 0x114c, 0x114c }, /* yesieung: yesieung, yesieung                */
+       { 0x1109, 0      }, /* yesieung-sios: sios                         */
+       { 0x1140, 0      }, /* yesieung-pansios: pansios                   */
+       { 0x1107, 0x1156 }, /* phieuph-pieup: pieup, phieuph-pieup         */
+       { 0x110b, 0x1157 }, /* kapyeounphieuph: ieung, kapyeounphieuph     */
+       { 0x1102, 0      }, /* hieuh-nieun: nieun                          */
+       { 0x1105, 0      }, /* hieuh-rieul: rieul                          */
+       { 0x1106, 0      }, /* hieuh-mieum: mieum                          */
+       { 0x1107, 0      }, /* hieuh-pieup: pieup                          */
+       { 0x1159, 0x1159 }, /* yeorinhieuh: yeorinhieuh, yeorinhieuh       */
+       { 0x1102, 0      }, /* kiyeok-nieun: nieun                         */
+       { 0x1107, 0      }, /* kiyeok-pieup: pieup                         */
+       { 0x110e, 0      }, /* kiyeok-chieuch: chieuch                     */
+       { 0x110f, 0      }, /* kiyeok-khieukh: khieukh                     */
+       { 0x1112, 0      }, /* kiyeok-hieuh: hieuh                         */
+       { 0x1102, 0x1114 }, /* ssangnieun: nieun, ssangnieun               */
+    };
+
+    static const ucschar table_ext_b[][2] = {
+       { 0x1105, 0      }, /* nieun-rieul: rieul                          */
+       { 0x110e, 0      }, /* nieun-chieuch: chieuch                      */
+       { 0x1103, 0x1104 }, /* ssangtikeut: tikeut, ssangtikeut            */
+       { 0x1107, 0xa961 }, /* ssangtikeut-pieup: pieup, tikeut-pieup      */
+       { 0x1107, 0xa961 }, /* tikeut-pieup: pieup, tikeut-pieup           */
+       { 0x1109, 0xa962 }, /* tikeut-sios: sios, tikeut-sios              */
+       { 0x1100, 0x112d }, /* tikeut-sios-kiyeok: kiyeok, sios-kiyeok     */
+       { 0x110c, 0xa963 }, /* tikeut-cieuc: cieuc, tikeut-cieuc           */
+       { 0x110e, 0      }, /* tikeut-chieuch: chieuch                     */
+       { 0x1110, 0      }, /* tikeut-thieuth: thieuth                     */
+       { 0x1100, 0x1101 }, /* rieul-ssangkiyeok: kiyeok, ssangkiyeok      */
+       { 0x1112, 0      }, /* rieul-kiyeok-hieuh: hieuh                   */
+       { 0x110f, 0xa96e }, /* ssangrieul-khieukh: khieukh, rieul-khieukh  */
+       { 0x1112, 0      }, /* rieul-mieum-hieuh: hieuh                    */
+       { 0x1103, 0x1120 }, /* rieul-pieup-tikeut: tikeut, pieup-tikeut    */
+       { 0x1111, 0x112a }, /* rieul-pieup-phieuph: phieuph, pieup-phieuph */
+       { 0x114c, 0      }, /* rieul-yesieung: yesieung                    */
+       { 0x1112, 0      }, /* rieul-yeorinhieuh-hieuh: hieuh              */
+       { 0x110b, 0x111b }, /* kapyeounrieul: ieung, kapyeounrieul         */
+       { 0x1102, 0      }, /* mieum-nieun: nieun                          */
+       { 0x1102, 0x1114 }, /* mieum-ssangnieun: nieun, ssangnieun         */
+       { 0x1106, 0      }, /* ssangmieum: mieum                           */
+       { 0x1109, 0x1121 }, /* mieum-pieup-sios: sios, pieup-sios          */
+       { 0x110c, 0      }, /* mieum-cieuc: cieuc                          */
+       { 0x1103, 0x1120 }, /* pieup-tikeut: tikeut, pieup-tikeut          */
+       { 0x1111, 0      }, /* pieup-rieul-phieuph: phieuph                */
+       { 0x1106, 0      }, /* pieup-mieum: mieum                          */
+       { 0x1107, 0x1108 }, /* ssangpieup: pieup, ssangpieup               */
+       { 0x1103, 0x112f }, /* pieup-sios-tikeut: tikeut, sios-tikeut      */
+       { 0x110c, 0x1127 }, /* pieup-cieuc: cieuc, pieup-cieuc             */
+       { 0x110e, 0x1128 }, /* pieup-chieuch: chieuch, pieup-chieuch       */
+       { 0x1106, 0x1131 }, /* sios-mieum: mieum, sios-mieum               */
+       { 0x110b, 0x112b }, /* sios-kapyeounpieup: ieung, kapyeounpieup    */
+       { 0x1100, 0x112d }, /* ssangsios-kiyeok: kiyeok, sios-kiyeok       */
+       { 0x1103, 0x112f }, /* ssangsios-tikeut: tikeut, sios-tikeut       */
+       { 0x1140, 0      }, /* sios-pansios: pansios                       */
+       { 0x110c, 0x1136 }, /* sios-cieuc: cieuc, sios-cieuc               */
+       { 0x110e, 0x1137 }, /* sios-chieuch: chieuch, sios-chieuch         */
+       { 0x1110, 0x1139 }, /* sios-thieuth: thieuth, sios-thieuth         */
+       { 0x1112, 0x113b }, /* sios-hieuh: hieuh, sios-hieuh               */
+       { 0x1107, 0      }, /* pansios-pieup: pieup                        */
+       { 0x110b, 0x112b }, /* pansios-kapyeounpieup: ieung, kapyeounpieup */
+       { 0x1106, 0      }, /* yesieung-mieum: mieum                       */
+       { 0x1112, 0      }, /* yesieung-hieuh: hieuh                       */
+       { 0x1107, 0      }, /* cieuc-pieup: pieup                          */
+       { 0x1107, 0x1108 }, /* cieuc-ssangpieup: pieup, ssangpieup         */
+       { 0x110c, 0x110d }, /* ssangcieuc: cieuc, ssangcieuc               */
+       { 0x1109, 0      }, /* phieuph-sios: sios                          */
+       { 0x1110, 0      }, /* phieuph-thieuth: thieuth                    */
+    };
+
+    ucschar cho = 0;
+
+    if (prevjong == 0) {
+       cho = hangul_jongseong_to_choseong(jong);
+    } else {
+       int diff;
+       int n1;
+       int n2;
+
+       n1 = hangul_jongseong_get_ncomponent(prevjong);
+       n2 = hangul_jongseong_get_ncomponent(jong);
+
+       diff = n2 - n1 - 1;
+       if (diff >= 0 && diff < 2) {
+           if (jong >= 0x11a8 && jong <= 0x11ff) {
+               cho = table[jong - 0x11a8][diff];
+           } else if (jong >= 0xd7cb && jong <= 0xd7fb) {
+               cho = table_ext_b[jong - 0xd7cb][diff];
+           }
+       } else if (diff == 2) {
+           cho = hangul_jongseong_to_choseong(jong);
+       }
+    }
+
+    return cho;
+}
+
 /**
  * @ingroup hangulctype
  * @brief 자모 코드를 조합하여 한글 음절로 변환
@@ -741,13 +1285,6 @@ hangul_jamo_to_syllable(ucschar choseong, ucschar jungseong, ucschar jongseong)
     return c;
 }
 
-/** @deprecated 이 함수 대신 hangul_jamo_to_syllable()을 사용한다. */
-ucschar
-hangul_jaso_to_syllable(ucschar choseong, ucschar jungseong, ucschar jongseong)
-{
-    return hangul_jamo_to_syllable(choseong, jungseong, jongseong);
-}
-
 /**
  * @ingroup hangulctype
  * @brief 음절을 자모로 분해
index 6e47da2491c22d5c005b390802fcd6f5e8eebce7..56b84ce285989e6f0adc6738fa068e42ddbb963f 100644 (file)
@@ -25,6 +25,7 @@
 #include <inttypes.h>
 #include <limits.h>
 
+#include "hangul-gettext.h"
 #include "hangul.h"
 #include "hangulinternals.h"
 
 
 #define HANGUL_KEYBOARD_TABLE_SIZE 0x80
 
-typedef void   (*HangulOnTranslate)  (HangulInputContext*,
-                                     int,
-                                     ucschar*,
-                                     void*);
-typedef bool   (*HangulOnTransition) (HangulInputContext*,
-                                     ucschar,
-                                     const ucschar*,
-                                     void*);
 
 typedef struct _HangulCombinationItem HangulCombinationItem;
 
 struct _HangulKeyboard {
     int type;
-    ucschar* table;
+    const char* id;
+    const char* name;
+    const ucschar* table;
+    const HangulCombination* combination;
 };
 
 struct _HangulCombinationItem {
@@ -214,7 +210,6 @@ struct _HangulInputContext {
     int type;
 
     const HangulKeyboard*    keyboard;
-    const HangulCombination* combination;
 
     HangulBuffer buffer;
     int output_mode;
@@ -229,63 +224,115 @@ struct _HangulInputContext {
     HangulOnTransition  on_transition;
     void*               on_transition_data;
 
-    HangulICFilter filter;
-    void *filter_data;
-
     unsigned int use_jamo_mode_only : 1;
 };
 
 #include "hangulkeyboard.h"
 
+static const HangulCombination hangul_combination_default = {
+    N_ELEMENTS(hangul_combination_table_default),
+    (HangulCombinationItem*)hangul_combination_table_default
+};
+
+static const HangulCombination hangul_combination_romaja = {
+    N_ELEMENTS(hangul_combination_table_romaja),
+    (HangulCombinationItem*)hangul_combination_table_romaja
+};
+
+static const HangulCombination hangul_combination_full = {
+    N_ELEMENTS(hangul_combination_table_full),
+    (HangulCombinationItem*)hangul_combination_table_full
+};
+
+static const HangulCombination hangul_combination_ahn = {
+    N_ELEMENTS(hangul_combination_table_ahn),
+    (HangulCombinationItem*)hangul_combination_table_ahn
+};
+
 static const HangulKeyboard hangul_keyboard_2 = {
     HANGUL_KEYBOARD_TYPE_JAMO,
-    (ucschar*)hangul_keyboard_table_2
+    "2", 
+    N_("Dubeolsik"), 
+    (ucschar*)hangul_keyboard_table_2,
+    &hangul_combination_default
+};
+
+static const HangulKeyboard hangul_keyboard_2y = {
+    HANGUL_KEYBOARD_TYPE_JAMO,
+    "2y", 
+    N_("Dubeolsik Yetgeul"), 
+    (ucschar*)hangul_keyboard_table_2y,
+    &hangul_combination_full
 };
 
 static const HangulKeyboard hangul_keyboard_32 = {
     HANGUL_KEYBOARD_TYPE_JASO,
-    (ucschar*)hangul_keyboard_table_32
+    "32",
+    N_("Sebeolsik Dubeol Layout"),
+    (ucschar*)hangul_keyboard_table_32,
+    &hangul_combination_default
 };
 
 static const HangulKeyboard hangul_keyboard_390 = {
     HANGUL_KEYBOARD_TYPE_JASO,
-    (ucschar*)hangul_keyboard_table_390
+    "39",
+    N_("Sebeolsik 390"),
+    (ucschar*)hangul_keyboard_table_390,
+    &hangul_combination_default
 };
 
 static const HangulKeyboard hangul_keyboard_3final = {
     HANGUL_KEYBOARD_TYPE_JASO,
-    (ucschar*)hangul_keyboard_table_3final
+    "3f",
+    N_("Sebeolsik Final"),
+    (ucschar*)hangul_keyboard_table_3final,
+    &hangul_combination_default
 };
 
 static const HangulKeyboard hangul_keyboard_3sun = {
     HANGUL_KEYBOARD_TYPE_JASO,
-    (ucschar*)hangul_keyboard_table_3sun
+    "3s",
+    N_("Sebeolsik Noshift"),
+    (ucschar*)hangul_keyboard_table_3sun,
+    &hangul_combination_default
 };
 
 static const HangulKeyboard hangul_keyboard_3yet = {
     HANGUL_KEYBOARD_TYPE_JASO,
-    (ucschar*)hangul_keyboard_table_3yet
+    "3y",
+    N_("Sebeolsik Yetgeul"),
+    (ucschar*)hangul_keyboard_table_3yet,
+    &hangul_combination_full
 };
 
 static const HangulKeyboard hangul_keyboard_romaja = {
     HANGUL_KEYBOARD_TYPE_ROMAJA,
-    (ucschar*)hangul_keyboard_table_romaja
+    "ro",
+    N_("Romaja"),
+    (ucschar*)hangul_keyboard_table_romaja,
+    &hangul_combination_romaja
 };
 
-static const HangulCombination hangul_combination_default = {
-    N_ELEMENTS(hangul_combination_table_default),
-    (HangulCombinationItem*)hangul_combination_table_default
+static const HangulKeyboard hangul_keyboard_ahn = {
+    HANGUL_KEYBOARD_TYPE_JASO,
+    "ahn",
+    N_("Ahnmatae"),
+    (ucschar*)hangul_keyboard_table_ahn,
+    &hangul_combination_ahn
 };
 
-static const HangulCombination hangul_combination_romaja = {
-    N_ELEMENTS(hangul_combination_table_romaja),
-    (HangulCombinationItem*)hangul_combination_table_romaja
+static const HangulKeyboard* hangul_keyboards[] = {
+    &hangul_keyboard_2,
+    &hangul_keyboard_2y,
+    &hangul_keyboard_390,
+    &hangul_keyboard_3final,
+    &hangul_keyboard_3sun,
+    &hangul_keyboard_3yet,
+    &hangul_keyboard_32,
+    &hangul_keyboard_romaja,
+    &hangul_keyboard_ahn,
 };
 
-static const HangulCombination hangul_combination_full = {
-    N_ELEMENTS(hangul_combination_table_full),
-    (HangulCombinationItem*)hangul_combination_table_full
-};
 
 static void    hangul_buffer_push(HangulBuffer *buffer, ucschar ch);
 static ucschar hangul_buffer_pop (HangulBuffer *buffer);
@@ -302,12 +349,13 @@ hangul_keyboard_new()
 {
     HangulKeyboard *keyboard = malloc(sizeof(HangulKeyboard));
     if (keyboard != NULL) {
-       keyboard->table = malloc(sizeof(ucschar) * HANGUL_KEYBOARD_TABLE_SIZE);
-       if (keyboard->table != NULL) {
+       ucschar* table = malloc(sizeof(ucschar) * HANGUL_KEYBOARD_TABLE_SIZE);
+       if (table != NULL) {
            int i;
            for (i = 0; i < HANGUL_KEYBOARD_TABLE_SIZE; i++)
-               keyboard->table[i] = 0;
+               table[i] = 0;
 
+           keyboard->table = table;
            return keyboard;
        }
        free(keyboard);
@@ -331,8 +379,10 @@ void
 hangul_keyboard_set_value(HangulKeyboard *keyboard, int key, ucschar value)
 {
     if (keyboard != NULL) {
-       if (key >= 0 && key < N_ELEMENTS(keyboard->table))
-           keyboard->table[key] = value;
+       if (key >= 0 && key < N_ELEMENTS(keyboard->table)) {
+           ucschar* table = (ucschar*)keyboard->table;
+           table[key] = value;
+       }
     }
 }
 
@@ -421,7 +471,15 @@ hangul_combination_cmp(const void* p1, const void* p2)
 {
     const HangulCombinationItem *item1 = p1;
     const HangulCombinationItem *item2 = p2;
-    return item1->key - item2->key;
+
+    /* key는 unsigned int이므로 단순히 빼서 리턴하면 안된다.
+     * 두 수의 차가 큰 경우 int로 변환하면서 음수가 될 수 있다. */
+    if (item1->key < item2->key)
+       return -1;
+    else if (item1->key > item2->key)
+       return 1;
+    else
+       return 0;
 }
 
 ucschar
@@ -557,38 +615,60 @@ hangul_jaso_to_string(ucschar cho, ucschar jung, ucschar jong,
        if (jung) {
            /* have cho, jung, jong or no jong */
            ch = hangul_jamo_to_syllable(cho, jung, jong);
-           buf[n++] = ch;
+           if (ch != 0) {
+               buf[n++] = ch;
+           } else {
+               /* 한글 음절로 표현 불가능한 경우 */
+               buf[n++] = cho;
+               buf[n++] = jung;
+               if (jong != 0)
+                   buf[n++] = jong;
+           }
        } else {
            if (jong) {
                /* have cho, jong */
-               ch = hangul_jamo_to_cjamo(cho);
-               buf[n++] = ch;
-               ch = hangul_jamo_to_cjamo(jong);
-               buf[n++] = ch;
+               buf[n++] = cho;
+               buf[n++] = HANGUL_JUNGSEONG_FILLER;
+               buf[n++] = jong;
            } else {
                /* have cho */
                ch = hangul_jamo_to_cjamo(cho);
-               buf[n++] = ch;
+               if (hangul_is_cjamo(ch)) {
+                   buf[n++] = ch;
+               } else {
+                   buf[n++] = cho;
+                   buf[n++] = HANGUL_JUNGSEONG_FILLER;
+               }
            }
        }
     } else {
        if (jung) {
            if (jong) {
                /* have jung, jong */
-               ch = hangul_jamo_to_cjamo(jung);
-               buf[n++] = ch;
-               ch = hangul_jamo_to_cjamo(jong);
-               buf[n++] = ch;
+               buf[n++] = HANGUL_CHOSEONG_FILLER;
+               buf[n++] = jung;
+               buf[n++] = jong;
            } else {
                /* have jung */
                ch = hangul_jamo_to_cjamo(jung);
-               buf[n++] = ch;
+               if (hangul_is_cjamo(ch)) {
+                   buf[n++] = ch;
+               } else {
+                   buf[n++] = HANGUL_CHOSEONG_FILLER;
+                   buf[n++] = jung;
+               }
            }
        } else {
            if (jong) { 
                /* have jong */
                ch = hangul_jamo_to_cjamo(jong);
-               buf[n++] = ch;
+               if (hangul_is_cjamo(ch)) {
+                   buf[n++] = ch;
+               } else {
+                   buf[n++] = HANGUL_CHOSEONG_FILLER;
+                   buf[n++] = HANGUL_JUNGSEONG_FILLER;
+                   buf[n++] = jong;
+               }
            } else {
                /* have nothing */
                buf[n] = 0;
@@ -744,6 +824,23 @@ hangul_ic_save_commit_string(HangulInputContext *hic)
     hangul_buffer_clear(&hic->buffer);
 }
 
+static ucschar
+hangul_ic_choseong_to_jongseong(HangulInputContext* hic, ucschar cho)
+{
+    ucschar jong = hangul_choseong_to_jongseong(cho);
+    if (hangul_is_jongseong_conjoinable(jong)) {
+       return jong;
+    } else {
+       /* 옛글 조합 규칙을 사용하는 자판의 경우에는 종성이 conjoinable
+        * 하지 않아도 상관없다 */
+       if (hic->keyboard->combination == &hangul_combination_full) {
+           return jong;
+       }
+    }
+
+    return 0;
+}
+
 static bool
 hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
 {
@@ -758,8 +855,8 @@ hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
 
     if (hic->buffer.jongseong) {
        if (hangul_is_choseong(ch)) {
-           jong = hangul_choseong_to_jongseong(ch);
-           combined = hangul_combination_combine(hic->combination,
+           jong = hangul_ic_choseong_to_jongseong(hic, ch);
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                              hic->buffer.jongseong, jong);
            if (hangul_is_jongseong(combined)) {
                if (!hangul_ic_push(hic, combined)) {
@@ -778,20 +875,26 @@ hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
            pop = hangul_ic_pop(hic);
            peek = hangul_ic_peek(hic);
 
-           if (hangul_is_jungseong(peek)) {
-               hic->buffer.jongseong = 0;
-               hangul_ic_save_commit_string(hic);
-               hangul_ic_push(hic, hangul_jongseong_to_choseong(pop));
-               if (!hangul_ic_push(hic, ch)) {
-                   return false;
+           if (hangul_is_jongseong(peek)) {
+               ucschar choseong = hangul_jongseong_get_diff(peek,
+                                                hic->buffer.jongseong);
+               if (choseong == 0) {
+                   hangul_ic_save_commit_string(hic);
+                   if (!hangul_ic_push(hic, ch)) {
+                       return false;
+                   }
+               } else {
+                   hic->buffer.jongseong = peek;
+                   hangul_ic_save_commit_string(hic);
+                   hangul_ic_push(hic, choseong);
+                   if (!hangul_ic_push(hic, ch)) {
+                       return false;
+                   }
                }
            } else {
-               ucschar choseong = 0, jongseong = 0; 
-               hangul_jongseong_dicompose(hic->buffer.jongseong,
-                                          &jongseong, &choseong);
-               hic->buffer.jongseong = jongseong;
+               hic->buffer.jongseong = 0;
                hangul_ic_save_commit_string(hic);
-               hangul_ic_push(hic, choseong);
+               hangul_ic_push(hic, hangul_jongseong_to_choseong(pop));
                if (!hangul_ic_push(hic, ch)) {
                    return false;
                }
@@ -802,7 +905,7 @@ hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
     } else if (hic->buffer.jungseong) {
        if (hangul_is_choseong(ch)) {
            if (hic->buffer.choseong) {
-               jong = hangul_choseong_to_jongseong(ch);
+               jong = hangul_ic_choseong_to_jongseong(hic, ch);
                if (hangul_is_jongseong(jong)) {
                    if (!hangul_ic_push(hic, jong)) {
                        if (!hangul_ic_push(hic, ch)) {
@@ -823,7 +926,7 @@ hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
                }
            }
        } else if (hangul_is_jungseong(ch)) {
-           combined = hangul_combination_combine(hic->combination,
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                                  hic->buffer.jungseong, ch);
            if (hangul_is_jungseong(combined)) {
                if (!hangul_ic_push(hic, combined)) {
@@ -840,7 +943,7 @@ hangul_ic_process_jamo(HangulInputContext *hic, ucschar ch)
        }
     } else if (hic->buffer.choseong) {
        if (hangul_is_choseong(ch)) {
-           combined = hangul_combination_combine(hic->combination,
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                                  hic->buffer.choseong, ch);
            if (!hangul_ic_push(hic, combined)) {
                if (!hangul_ic_push(hic, ch)) {
@@ -881,7 +984,7 @@ hangul_ic_process_jaso(HangulInputContext *hic, ucschar ch)
        } else {
            ucschar choseong = 0;
            if (hangul_is_choseong(hangul_ic_peek(hic))) {
-               choseong = hangul_combination_combine(hic->combination,
+               choseong = hangul_combination_combine(hic->keyboard->combination,
                                                  hic->buffer.choseong, ch);
            }
            if (choseong) {
@@ -907,7 +1010,7 @@ hangul_ic_process_jaso(HangulInputContext *hic, ucschar ch)
        } else {
            ucschar jungseong = 0;
            if (hangul_is_jungseong(hangul_ic_peek(hic))) {
-               jungseong = hangul_combination_combine(hic->combination,
+               jungseong = hangul_combination_combine(hic->keyboard->combination,
                                                 hic->buffer.jungseong, ch);
            }
            if (jungseong) {
@@ -935,7 +1038,7 @@ hangul_ic_process_jaso(HangulInputContext *hic, ucschar ch)
        } else {
            ucschar jongseong = 0;
            if (hangul_is_jongseong(hangul_ic_peek(hic))) {
-               jongseong = hangul_combination_combine(hic->combination,
+               jongseong = hangul_combination_combine(hic->keyboard->combination,
                                                   hic->buffer.jongseong, ch);
            }
            if (jongseong) {
@@ -992,8 +1095,8 @@ hangul_ic_process_romaja(HangulInputContext *hic, int ascii, ucschar ch)
            if (hangul_is_jongseong(ch))
                jong = ch;
            else
-               jong = hangul_choseong_to_jongseong(ch);
-           combined = hangul_combination_combine(hic->combination,
+               jong = hangul_ic_choseong_to_jongseong(hic, ch);
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                              hic->buffer.jongseong, jong);
            if (hangul_is_jongseong(combined)) {
                if (!hangul_ic_push(hic, combined)) {
@@ -1020,6 +1123,7 @@ hangul_ic_process_romaja(HangulInputContext *hic, int ascii, ucschar ch)
                if (hangul_is_jungseong(peek)) {
                    if (pop == 0x11aa) {
                        hic->buffer.jongseong = 0x11a8;
+                       pop = 0x11ba;
                    } else {
                        hic->buffer.jongseong = 0;
                    }
@@ -1046,7 +1150,7 @@ hangul_ic_process_romaja(HangulInputContext *hic, int ascii, ucschar ch)
     } else if (hic->buffer.jungseong) {
        if (hangul_is_choseong(ch)) {
            if (hic->buffer.choseong) {
-               jong = hangul_choseong_to_jongseong(ch);
+               jong = hangul_ic_choseong_to_jongseong(hic, ch);
                if (hangul_is_jongseong(jong)) {
                    if (!hangul_ic_push(hic, jong)) {
                        if (!hangul_ic_push(hic, ch)) {
@@ -1067,7 +1171,7 @@ hangul_ic_process_romaja(HangulInputContext *hic, int ascii, ucschar ch)
                }
            }
        } else if (hangul_is_jungseong(ch)) {
-           combined = hangul_combination_combine(hic->combination,
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                                  hic->buffer.jungseong, ch);
            if (hangul_is_jungseong(combined)) {
                if (!hangul_ic_push(hic, combined)) {
@@ -1091,7 +1195,7 @@ hangul_ic_process_romaja(HangulInputContext *hic, int ascii, ucschar ch)
        }
     } else if (hic->buffer.choseong) {
        if (hangul_is_choseong(ch)) {
-           combined = hangul_combination_combine(hic->combination,
+           combined = hangul_combination_combine(hic->keyboard->combination,
                                                  hic->buffer.choseong, ch);
            if (combined == 0) {
                hic->buffer.jungseong = 0x1173;
@@ -1342,112 +1446,6 @@ hangul_ic_backspace(HangulInputContext *hic)
     return ret;
 }
 
-int
-hangul_ic_dvorak_to_qwerty(int qwerty)
-{
-    static const int table[] = {
-       '!',    /* ! */
-       'Q',    /* " */
-       '#',    /* # */
-       '$',    /* $ */
-       '%',    /* % */
-       '&',    /* & */
-       'q',    /* ' */
-       '(',    /* ( */
-       ')',    /* ) */
-       '*',    /* * */
-       '}',    /* + */
-       'w',    /* , */
-       '\'',   /* - */
-       'e',    /* . */
-       '[',    /* / */
-       '0',    /* 0 */
-       '1',    /* 1 */
-       '2',    /* 2 */
-       '3',    /* 3 */
-       '4',    /* 4 */
-       '5',    /* 5 */
-       '6',    /* 6 */
-       '7',    /* 7 */
-       '8',    /* 8 */
-       '9',    /* 9 */
-       'Z',    /* : */
-       'z',    /* ; */
-       'W',    /* < */
-       ']',    /* = */
-       'E',    /* > */
-       '{',    /* ? */
-       '@',    /* @ */
-       'A',    /* A */
-       'N',    /* B */
-       'I',    /* C */
-       'H',    /* D */
-       'D',    /* E */
-       'Y',    /* F */
-       'U',    /* G */
-       'J',    /* H */
-       'G',    /* I */
-       'C',    /* J */
-       'V',    /* K */
-       'P',    /* L */
-       'M',    /* M */
-       'L',    /* N */
-       'S',    /* O */
-       'R',    /* P */
-       'X',    /* Q */
-       'O',    /* R */
-       ':',    /* S */
-       'K',    /* T */
-       'F',    /* U */
-       '>',    /* V */
-       '<',    /* W */
-       'B',    /* X */
-       'T',    /* Y */
-       '?',    /* Z */
-       '-',    /* [ */
-       '\\',   /* \ */
-       '=',    /* ] */
-       '^',    /* ^ */
-       '"',    /* _ */
-       '`',    /* ` */
-       'a',    /* a */
-       'n',    /* b */
-       'i',    /* c */
-       'h',    /* d */
-       'd',    /* e */
-       'y',    /* f */
-       'u',    /* g */
-       'j',    /* h */
-       'g',    /* i */
-       'c',    /* j */
-       'v',    /* k */
-       'p',    /* l */
-       'm',    /* m */
-       'l',    /* n */
-       's',    /* o */
-       'r',    /* p */
-       'x',    /* q */
-       'o',    /* r */
-       ';',    /* s */
-       'k',    /* t */
-       'f',    /* u */
-       '.',    /* v */
-       ',',    /* w */
-       'b',    /* x */
-       't',    /* y */
-       '/',    /* z */
-       '_',    /* { */
-       '|',    /* | */
-       '+',    /* } */
-       '~'     /* ~ */
-    };
-
-    if (qwerty >= '!' && qwerty <= '~')
-       return table[qwerty - '!'];
-
-    return qwerty;
-}
-
 /**
  * @ingroup hangulic
  * @brief @ref HangulInputContext가 조합중인 글자를 가지고 있는지 확인하는 함수
@@ -1555,12 +1553,6 @@ void hangul_ic_connect_callback(HangulInputContext* hic, const char* event,
     }
 }
 
-void hangul_ic_set_filter(HangulInputContext *hic,
-                         HangulICFilter func, void *user_data)
-{
-    return;
-}
-
 void
 hangul_ic_set_keyboard(HangulInputContext *hic, const HangulKeyboard* keyboard)
 {
@@ -1570,6 +1562,25 @@ hangul_ic_set_keyboard(HangulInputContext *hic, const HangulKeyboard* keyboard)
     hic->keyboard = keyboard;
 }
 
+static const HangulKeyboard*
+hangul_ic_get_keyboard_by_id(const char* id)
+{
+    unsigned i;
+    unsigned n;
+
+    /* hangul_keyboards 테이블은 id 순으로 정렬되어 있지 않으므로
+     * binary search를 할수 없고 linear search를 한다. */
+    n = hangul_ic_get_n_keyboards();
+    for (i = 0; i < n; ++i) {
+       const HangulKeyboard* keyboard = hangul_keyboards[i];
+       if (strcmp(id, keyboard->id) == 0) {
+           return keyboard;
+       }
+    }
+
+    return NULL;
+}
+
 /**
  * @ingroup hangulic
  * @brief @ref HangulInputContext의 자판 배열을 바꾸는 함수
@@ -1594,47 +1605,19 @@ hangul_ic_set_keyboard(HangulInputContext *hic, const HangulKeyboard* keyboard)
 void
 hangul_ic_select_keyboard(HangulInputContext *hic, const char* id)
 {
+    const HangulKeyboard* keyboard;
+
     if (hic == NULL)
        return;
 
     if (id == NULL)
        id = "2";
 
-    if (strcmp(id, "32") == 0) {
-       hic->keyboard = &hangul_keyboard_32;
-       hic->combination = &hangul_combination_default;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
-    } else if (strcmp(id, "39") == 0) {
-       hic->keyboard = &hangul_keyboard_390;
-       hic->combination = &hangul_combination_default;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
-    } else if (strcmp(id, "3f") == 0) {
-       hic->keyboard = &hangul_keyboard_3final;
-       hic->combination = &hangul_combination_default;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
-    } else if (strcmp(id, "3s") == 0) {
-       hic->keyboard = &hangul_keyboard_3sun;
-       hic->combination = &hangul_combination_default;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
-    } else if (strcmp(id, "3y") == 0) {
-       hic->keyboard = &hangul_keyboard_3yet;
-       hic->combination = &hangul_combination_full;
-       hic->output_mode = HANGUL_OUTPUT_JAMO;
-       hic->use_jamo_mode_only = TRUE;
-    } else if (strcmp(id, "ro") == 0) {
-       hic->keyboard = &hangul_keyboard_romaja;
-       hic->combination = &hangul_combination_romaja;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
+    keyboard = hangul_ic_get_keyboard_by_id(id);
+    if (keyboard != NULL) {
+       hic->keyboard = keyboard;
     } else {
        hic->keyboard = &hangul_keyboard_2;
-       hic->combination = &hangul_combination_default;
-       hic->output_mode = HANGUL_OUTPUT_SYLLABLE;
-       hic->use_jamo_mode_only = FALSE;
     }
 }
 
@@ -1642,10 +1625,6 @@ void
 hangul_ic_set_combination(HangulInputContext *hic,
                          const HangulCombination* combination)
 {
-    if (hic == NULL || combination == NULL)
-       return;
-
-    hic->combination = combination;
 }
 
 /**
@@ -1708,3 +1687,65 @@ hangul_ic_delete(HangulInputContext *hic)
 
     free(hic);
 }
+
+unsigned int
+hangul_ic_get_n_keyboards()
+{
+    return N_ELEMENTS(hangul_keyboards);
+}
+
+const char*
+hangul_ic_get_keyboard_id(unsigned index_)
+{
+    if (index_ < N_ELEMENTS(hangul_keyboards)) {
+       return hangul_keyboards[index_]->id;
+    }
+
+    return NULL;
+}
+
+const char*
+hangul_ic_get_keyboard_name(unsigned index_)
+{
+#ifdef ENABLE_NLS
+    static bool isGettextInitialized = false;
+    if (!isGettextInitialized) {
+       isGettextInitialized = true;
+       bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
+       bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+    }
+#endif
+
+    if (index_ < N_ELEMENTS(hangul_keyboards)) {
+       return _(hangul_keyboards[index_]->name);
+    }
+
+    return NULL;
+}
+
+/**
+ * @ingroup hangulic
+ * @brief 주어진 hic가 transliteration method인지 판별
+ * @param hic 상태를 알고자 하는 HangulInputContext 포인터
+ * @return hic가 transliteration method인 경우 true를 리턴, 아니면 false
+ *
+ * 이 함수는 @a hic 가 transliteration method인지 판별하는 함수다.
+ * 이 함수가 false를 리턴할 경우에는 process 함수에 keycode를 넘기기 전에
+ * 키보드 자판 배열에 독립적인 값으로 변환한 후 넘겨야 한다.
+ * 그렇지 않으면 유럽어 자판과 한국어 자판을 같이 쓸때 한글 입력이 제대로
+ * 되지 않는다.
+ */
+bool
+hangul_ic_is_transliteration(HangulInputContext *hic)
+{
+    int type;
+
+    if (hic == NULL)
+       return false;
+
+    type = hangul_keyboard_get_type(hic->keyboard);
+    if (type == HANGUL_KEYBOARD_TYPE_ROMAJA)
+       return true;
+
+    return false;
+}
old mode 100755 (executable)
new mode 100644 (file)
index cd243a4..8475bcd
@@ -3,4 +3,6 @@
 
 #define N_ELEMENTS(array) (sizeof (array) / sizeof ((array)[0]))
 
+ucschar hangul_jongseong_get_diff(ucschar prevjong, ucschar jong);
+
 #endif /* libhangul_hangulinternals_h */
index e3cccd4e2e14e108cb7dc49083f9eb046f28eb74..7bdc27aab7ed5a1419ac16f366ff506b0e8b1bd5 100644 (file)
@@ -129,6 +129,137 @@ static const ucschar hangul_keyboard_table_2[] = {
     0x0000      /* 0x7F delete                                       */
 };
 
+static const ucschar hangul_keyboard_table_2y[] = {
+    0x0000,     /* 0x00 null                                         */
+    0x0000,     /* 0x01 start of heading                             */
+    0x0000,     /* 0x02 start of text                                */
+    0x0000,     /* 0x03 end of text                                  */
+    0x0000,     /* 0x04 end of transmission                          */
+    0x0000,     /* 0x05 enquiry                                      */
+    0x0000,     /* 0x06 acknowledge                                  */
+    0x0000,     /* 0x07 bell                                         */
+    0x0000,     /* 0x08 backspace                                    */
+    0x0000,     /* 0x09 character tabulation                         */
+    0x0000,     /* 0x0A line feed (lf)                               */
+    0x0000,     /* 0x0B line tabulation                              */
+    0x0000,     /* 0x0C form feed (ff)                               */
+    0x0000,     /* 0x0D carriage return (cr)                         */
+    0x0000,     /* 0x0E shift out                                    */
+    0x0000,     /* 0x0F shift in                                     */
+    0x0000,     /* 0x10 data link escape                             */
+    0x0000,     /* 0x11 device control one                           */
+    0x0000,     /* 0x12 device control two                           */
+    0x0000,     /* 0x13 device control three                         */
+    0x0000,     /* 0x14 device control four                          */
+    0x0000,     /* 0x15 negative acknowledge                         */
+    0x0000,     /* 0x16 synchronous idle                             */
+    0x0000,     /* 0x17 end of transmission block                    */
+    0x0000,     /* 0x18 cancel                                       */
+    0x0000,     /* 0x19 end of medium                                */
+    0x0000,     /* 0x1A substitute                                   */
+    0x0000,     /* 0x1B escape                                       */
+    0x0000,     /* 0x1C information separator four                   */
+    0x0000,     /* 0x1D information separator three                  */
+    0x0000,     /* 0x1E information separator two                    */
+    0x0000,     /* 0x1F information separator one                    */
+    0x0000,     /* 0x20 space                                        */
+    0x0021,     /* 0x21 exclam:       exclamation mark               */
+    0x0022,     /* 0x22 quotedbl:     quotation mark                 */
+    0x0023,     /* 0x23 numbersign:   number sign                    */
+    0x0024,     /* 0x24 dollar:       dollar sign                    */
+    0x0025,     /* 0x25 percent:      percent sign                   */
+    0x0026,     /* 0x26 ampersand:    ampersand                      */
+    0x0027,     /* 0x27 apostrophe:   apostrophe                     */
+    0x0028,     /* 0x28 parenleft:    left parenthesis               */
+    0x0029,     /* 0x29 parenright:   right parenthesis              */
+    0x002a,     /* 0x2A asterisk:     asterisk                       */
+    0x002b,     /* 0x2B plus:         plus sign                      */
+    0x002c,     /* 0x2C comma:        comma                          */
+    0x002d,     /* 0x2D minus:        minus sign                     */
+    0x002e,     /* 0x2E period:       period                         */
+    0x002f,     /* 0x2F slash:        slash                          */
+    0x0030,     /* 0x30 0:            0                              */
+    0x0031,     /* 0x31 1:            1                              */
+    0x0032,     /* 0x32 2:            2                              */
+    0x0033,     /* 0x33 3:            3                              */
+    0x0034,     /* 0x34 4:            4                              */
+    0x0035,     /* 0x35 5:            5                              */
+    0x0036,     /* 0x36 6:            6                              */
+    0x0037,     /* 0x37 7:            7                              */
+    0x0038,     /* 0x38 8:            8                              */
+    0x0039,     /* 0x39 9:            9                              */
+    0x003a,     /* 0x3A colon:        colon                          */
+    0x003b,     /* 0x3B semicolon:    semicolon                      */
+    0x003c,     /* 0x3C less:         less-than sign                 */
+    0x003d,     /* 0x3D equal:        equals sign                    */
+    0x003e,     /* 0x3E greater:      greater-than sign              */
+    0x003f,     /* 0x3F question:     question mark                  */
+    0x0040,     /* 0x40 at:           commercial at                  */
+    0x1140,     /* 0x41 A:            choseong pansios               */
+    0x1154,     /* 0x42 B:            choseong chitueumchieuch       */
+    0x114e,     /* 0x43 C:            choseong chitueumcieuc         */
+    0x114c,     /* 0x44 D:            choseong yesieung              */
+    0x1104,     /* 0x45 E:            choseong ssangtikeut           */
+    0x111a,     /* 0x46 F:            choseong rieul-hieuh           */
+    0x1159,     /* 0x47 G:            choseong yeorinhieuh           */
+    0x1183,     /* 0x48 H:            jungseong o-u                  */
+    0x1163,     /* 0x49 I:            jungseong ya                   */
+    0x1165,     /* 0x4A J:            jungseong eo                   */
+    0x119e,     /* 0x4B K:            jungseong araea                */
+    0x1194,     /* 0x4C L:            jungseong yu-i                 */
+    0x1173,     /* 0x4D M:            jungseong eu                   */
+    0x1155,     /* 0x4E N:            choseong ceongchieumchieuch    */
+    0x1164,     /* 0x4F O:            jungseong yae                  */
+    0x1168,     /* 0x50 P:            jungseong ye                   */
+    0x1108,     /* 0x51 Q:            choseong ssangpieup            */
+    0x1101,     /* 0x52 R:            choseong ssangkiyeok           */
+    0x115d,     /* 0x53 S:            choseong nieun-hieuh           */
+    0x110a,     /* 0x54 T:            choseong ssangsios             */
+    0x1167,     /* 0x55 U:            jungseong yeo                  */
+    0x1150,     /* 0x56 V:            choseong ceongchieumcieuc      */
+    0x110d,     /* 0x57 W:            choseong ssangcieuc            */
+    0x113e,     /* 0x58 X:            choseong ceongchieumsios       */
+    0x116d,     /* 0x59 Y:            jungseong yo                   */
+    0x113c,     /* 0x5A Z:            choseong chitueumsios          */
+    0x005b,     /* 0x5B bracketleft:  left bracket                   */
+    0x005c,     /* 0x5C backslash:    backslash                      */
+    0x005d,     /* 0x5D bracketright: right bracket                  */
+    0x005e,     /* 0x5E asciicircum:  circumflex accent              */
+    0x005f,     /* 0x5F underscore:   underscore                     */
+    0x0060,     /* 0x60 quoteleft:    grave accent                   */
+    0x1106,     /* 0x61 a:            choseong  mieum                */
+    0x1172,     /* 0x62 b:            jungseong yu                   */
+    0x110e,     /* 0x63 c:            choseong  chieuch              */
+    0x110b,     /* 0x64 d:            choseong  ieung                */
+    0x1103,     /* 0x65 e:            choseong  tikeut               */
+    0x1105,     /* 0x66 f:            choseong  rieul                */
+    0x1112,     /* 0x67 g:            choseong  hieuh                */
+    0x1169,     /* 0x68 h:            jungseong o                    */
+    0x1163,     /* 0x69 i:            jungseong ya                   */
+    0x1165,     /* 0x6A j:            jungseong eo                   */
+    0x1161,     /* 0x6B k:            jungseong a                    */
+    0x1175,     /* 0x6C l:            jungseong i                    */
+    0x1173,     /* 0x6D m:            jungseong eu                   */
+    0x116e,     /* 0x6E n:            jungseong u                    */
+    0x1162,     /* 0x6F o:            jungseong ae                   */
+    0x1166,     /* 0x70 p:            jungseong e                    */
+    0x1107,     /* 0x71 q:            choseong  pieup                */
+    0x1100,     /* 0x72 r:            choseong  kiyeok               */
+    0x1102,     /* 0x73 s:            choseong  nieun                */
+    0x1109,     /* 0x74 t:            choseong  sios                 */
+    0x1167,     /* 0x75 u:            jungseong yeo                  */
+    0x1111,     /* 0x76 v:            choseong  phieuph              */
+    0x110c,     /* 0x77 w:            choseong  cieuc                */
+    0x1110,     /* 0x78 x:            choseong  thieuth              */
+    0x116d,     /* 0x79 y:            jungseong yo                   */
+    0x110f,     /* 0x7A z:            choseong  khieukh              */
+    0x007b,     /* 0x7B braceleft:    left brace                     */
+    0x007c,     /* 0x7C bar:          vertical bar                   */
+    0x007d,     /* 0x7D braceright:   right brace                    */
+    0x007e,     /* 0x7E asciitilde:   tilde                          */
+    0x0000      /* 0x7F delete                                       */
+};
+
 static const ucschar hangul_keyboard_table_32[] = {
     0x0000,     /* 0x00 null                                         */
     0x0000,     /* 0x01 start of heading                             */
@@ -720,13 +851,13 @@ static const ucschar hangul_keyboard_table_3yet[] = {
     0x003f,     /* 0x3F question:       question mark                */
     0x11eb,     /* 0x40 at:             jongseong pansios            */
     0x11ae,     /* 0x41 A:              jongseong tikeut             */
-    0x116e,     /* 0x42 B:              jungseong u                  */
+    0x0021,     /* 0x42 B:              exclamation mark             */
     0x11b1,     /* 0x43 C:              jongseong rieul-mieum        */
     0x11b0,     /* 0x44 D:              jongseong rieul-kiyeok       */
     0x11bf,     /* 0x45 E:              jongseong khieukh            */
     0x11a9,     /* 0x46 F:              jongseong ssangkiyeok        */
     0x119e,     /* 0x47 G:              jungseong araea              */
-    0x1102,     /* 0x48 H:              choseong nieun               */
+    0x0027,     /* 0x48 H:              apostrophe                   */
     0x1154,     /* 0x49 I:              choseong chitueumchieuch     */
     0x114c,     /* 0x4A J:              choseong yesieung            */
     0x114e,     /* 0x4B K:              choseong chitueumcieuc       */
@@ -734,21 +865,21 @@ static const ucschar hangul_keyboard_table_3yet[] = {
     0x1159,     /* 0x4D M:              choseong yeorinhieuh         */
     0x1140,     /* 0x4E N:              choseong pansios             */
     0x1155,     /* 0x4F O:              choseong ceongchieumchieuch  */
-    0x1111,     /* 0x50 P:              choseong phieuph             */
+    0x003e,     /* 0x50 P:              greater-than sign            */
     0x11c1,     /* 0x51 Q:              jongseong phieuph            */
     0x1164,     /* 0x52 R:              jungseong yae                */
     0x11ad,     /* 0x53 S:              jongseong nieun-hieuh        */
-    0x1165,     /* 0x54 T:              jungseong eo                 */
-    0x302e,     /* 0x55 U:              single dot tone mark         */
+    0x003b,     /* 0x54 T:              semicolon                    */
+    0x00b7,     /* 0x55 U:              middle dot                   */
     0x11b6,     /* 0x56 V:              jongseong rieul-hieuh        */
     0x11c0,     /* 0x57 W:              jongseong thikeuth           */
     0x11b9,     /* 0x58 X:              jongseong pieup-sios         */
-    0x302f,     /* 0x59 Y:              double dot tone mark         */
+    0x003c,     /* 0x59 Y:              less-than sign               */
     0x11be,     /* 0x5A Z:              jongseong chieuch            */
     0x005b,     /* 0x5B bracketleft:    left bracket                 */
     0x005c,     /* 0x5C backslash:      backslash                    */
     0x005d,     /* 0x5D bracketright:   right bracket                */
-    0x005e,     /* 0x5E asciicircum:    circumflex accent            */
+    0x114c,     /* 0x5E asciicircum:    choseong yesieung            */
     0x005f,     /* 0x5F underscore:     underscore                   */
     0x11f9,     /* 0x60 quoteleft:      jongseong yeorinhieuh        */
     0x11bc,     /* 0x61 a:              jongseong ieung              */
@@ -915,6 +1046,137 @@ static const ucschar hangul_keyboard_table_romaja[] = {
     0x0000      /* 0x7F delete                                       */
 };
 
+static const ucschar hangul_keyboard_table_ahn[] = {
+    0x0000,     /* 0x00 null                                         */
+    0x0000,     /* 0x01 start of heading                             */
+    0x0000,     /* 0x02 start of text                                */
+    0x0000,     /* 0x03 end of text                                  */
+    0x0000,     /* 0x04 end of transmission                          */
+    0x0000,     /* 0x05 enquiry                                      */
+    0x0000,     /* 0x06 acknowledge                                  */
+    0x0000,     /* 0x07 bell                                         */
+    0x0000,     /* 0x08 backspace                                    */
+    0x0000,     /* 0x09 character tabulation                         */
+    0x0000,     /* 0x0A line feed (lf)                               */
+    0x0000,     /* 0x0B line tabulation                              */
+    0x0000,     /* 0x0C form feed (ff)                               */
+    0x0000,     /* 0x0D carriage return (cr)                         */
+    0x0000,     /* 0x0E shift out                                    */
+    0x0000,     /* 0x0F shift in                                     */
+    0x0000,     /* 0x10 data link escape                             */
+    0x0000,     /* 0x11 device control one                           */
+    0x0000,     /* 0x12 device control two                           */
+    0x0000,     /* 0x13 device control three                         */
+    0x0000,     /* 0x14 device control four                          */
+    0x0000,     /* 0x15 negative acknowledge                         */
+    0x0000,     /* 0x16 synchronous idle                             */
+    0x0000,     /* 0x17 end of transmission block                    */
+    0x0000,     /* 0x18 cancel                                       */
+    0x0000,     /* 0x19 end of medium                                */
+    0x0000,     /* 0x1A substitute                                   */
+    0x0000,     /* 0x1B escape                                       */
+    0x0000,     /* 0x1C information separator four                   */
+    0x0000,     /* 0x1D information separator three                  */
+    0x0000,     /* 0x1E information separator two                    */
+    0x0000,     /* 0x1F information separator one                    */
+    0x0000,     /* 0x20 space                                        */
+    0x0021,     /* 0x21 exclam:       exclamation mark               */
+    0x0022,     /* 0x22 quotedbl:     quotation mark                 */
+    0x0023,     /* 0x23 numbersign:   number sign                    */
+    0x0024,     /* 0x24 dollar:       dollar sign                    */
+    0x0025,     /* 0x25 percent:      percent sign                   */
+    0x0026,     /* 0x26 ampersand:    ampersand                      */
+    0x002e,     /* 0x27 apostrophe:   period                         */
+    0x0028,     /* 0x28 parenleft:    left parenthesis               */
+    0x0029,     /* 0x29 parenright:   right parenthesis              */
+    0x002a,     /* 0x2A asterisk:     asterisk                       */
+    0x002b,     /* 0x2B plus:         plus sign                      */
+    0x11b7,     /* 0x2C comma:        jongseong mieum                */
+    0x002d,     /* 0x2D minus:        minus sign                     */
+    0x11af,     /* 0x2E period:       jongseong rieul                */
+    0x11c2,     /* 0x2F slash:        jongseong hieuh                */
+    0x0030,     /* 0x30 0:            0                              */
+    0x0031,     /* 0x31 1:            1                              */
+    0x0032,     /* 0x32 2:            2                              */
+    0x0033,     /* 0x33 3:            3                              */
+    0x0034,     /* 0x34 4:            4                              */
+    0x0035,     /* 0x35 5:            5                              */
+    0x0036,     /* 0x36 6:            6                              */
+    0x0037,     /* 0x37 7:            7                              */
+    0x0038,     /* 0x38 8:            8                              */
+    0x0039,     /* 0x39 9:            9                              */
+    0x003a,     /* 0x3A colon:        colon                          */
+    0x116e,     /* 0x3B semicolon:    jungseong u                    */
+    0x003c,     /* 0x3C less:         less-than sign                 */
+    0x003d,     /* 0x3D equal:        equals sign                    */
+    0x003e,     /* 0x3E greater:      greater-than sign              */
+    0x11f9,     /* 0x3F question:     jongseong yeorinhieuh          */
+    0x0040,     /* 0x40 at:           commercial at                  */
+    0x1107,     /* 0x41 A:            choseong pieup                 */
+    0x11f0,     /* 0x42 B:            jongseong yesieung             */
+    0x11b8,     /* 0x43 C:            jongseong pieup                */
+    0x1103,     /* 0x44 D:            choseong tikeut                */
+    0x1102,     /* 0x45 E:            choseong nieun                 */
+    0x1100,     /* 0x46 F:            choseong kiyeok                */
+    0x114c,     /* 0x47 G:            choseong yesieung              */
+    0x1165,     /* 0x48 H:            jungseong eo                   */
+    0x002f,     /* 0x49 I:            slash                          */
+    0x119e,     /* 0x4A J:            jungseong araea                */
+    0x1175,     /* 0x4B K:            jungseong i                    */
+    0x1169,     /* 0x4C L:            jungseong o                    */
+    0x11ab,     /* 0x4D M:            jongseong nienu                */
+    0x11eb,     /* 0x4E N:            jongseung pansios              */
+    0x005b,     /* 0x4F O:            left bracket                   */
+    0x005d,     /* 0x50 P:            right bracket                  */
+    0x1106,     /* 0x51 Q:            choseong mieum                 */
+    0x1105,     /* 0x52 R:            choseong rieul                 */
+    0x110c,     /* 0x53 S:            choseong cieuc                 */
+    0x1159,     /* 0x54 T:            choseong yeorinhieuh           */
+    0x0027,     /* 0x55 U:            apostrophe                     */
+    0x11a8,     /* 0x56 V:            jongseong kiyeok               */
+    0x1140,     /* 0x57 W:            choseong pansios               */
+    0x11ae,     /* 0x58 X:            jongseong tikeut               */
+    0x003b,     /* 0x59 Y:            semicolon                      */
+    0x11bd,     /* 0x5A Z:            jongseong cieuc                */
+    0x002c,     /* 0x5B bracketleft:  comma                          */
+    0x005c,     /* 0x5C backslash:    backslash                      */
+    0x003f,     /* 0x5D bracketright: qustion mark                   */
+    0x005e,     /* 0x5E asciicircum:  circumflex accent              */
+    0x005f,     /* 0x5F underscore:   underscore                     */
+    0x0060,     /* 0x60 quoteleft:    grave accent                   */
+    0x1107,     /* 0x61 a:            choseong  pieup                */
+    0x11bc,     /* 0x62 b:            jongseong ieung                */
+    0x11b8,     /* 0x63 c:            jongseong pieup                */
+    0x1103,     /* 0x64 d:            choseong  tikeut               */
+    0x1102,     /* 0x65 e:            choseong nieun                 */
+    0x1100,     /* 0x66 f:            choseong kiyeok                */
+    0x110b,     /* 0x67 g:            choseong ieung                 */
+    0x1165,     /* 0x68 h:            jungseong eo                   */
+    0x1173,     /* 0x69 i:            jungseong eu                   */
+    0x1161,     /* 0x6A j:            jungseong a                    */
+    0x1175,     /* 0x6B k:            jungseong i                    */
+    0x1169,     /* 0x6C l:            jungseong o                    */
+    0x11ab,     /* 0x6D m:            jongseong nieun                */
+    0x11ba,     /* 0x6E n:            jongseong sios                 */
+    0x116d,     /* 0x6F o:            jungseong yo                   */
+    0x1172,     /* 0x70 p:            jungseong yu                   */
+    0x1106,     /* 0x71 q:            choseong mieum                 */
+    0x1105,     /* 0x72 r:            choseong rieul                 */
+    0x110c,     /* 0x73 s:            choseong cieuc                 */
+    0x1112,     /* 0x74 t:            choseong hieuh                 */
+    0x1163,     /* 0x75 u:            jungseong ya                   */
+    0x11a8,     /* 0x76 v:            jongseong kiyok                */
+    0x1109,     /* 0x77 w:            choseong sios                  */
+    0x11ae,     /* 0x78 x:            jongseong tikeut               */
+    0x1167,     /* 0x79 y:            jungseong yeo                  */
+    0x11bd,     /* 0x7A z:            jongseong cieuc                */
+    0x007b,     /* 0x7B braceleft:    left brace                     */
+    0x007c,     /* 0x7C bar:          vertical bar                   */
+    0x007d,     /* 0x7D braceright:   right brace                    */
+    0x007e,     /* 0x7E asciitilde:   tilde                          */
+    0x0000      /* 0x7F delete                                       */
+};
+
 static const HangulCombinationItem hangul_combination_table_default[] = {
   { 0x11001100, 0x1101 }, /* choseong  kiyeok + kiyeok  = ssangkiyeok   */
   { 0x11031103, 0x1104 }, /* choseong  tikeut + tikeut  = ssangtikeut   */
@@ -992,191 +1254,439 @@ static const HangulCombinationItem hangul_combination_table_romaja[] = {
 };
 
 static const HangulCombinationItem hangul_combination_table_full[] = {
-  { 0x11001100, 0x1101 }, /* choseong ssangkiyeok           = kiyeok + kiyeok */
-  { 0x11021100, 0x1113 }, /* choseong nieun-kiyeok          = nieun + kiyeok */
-  { 0x11021102, 0x1114 }, /* choseong ssangnieun            = nieun + nieun */
-  { 0x11021103, 0x1115 }, /* choseong nieun-tikeut          = nieun + tikeut */
-  { 0x11021107, 0x1116 }, /* choseong nieun-pieup           = nieun + pieup */
-  { 0x11031100, 0x1117 }, /* choseong tikeut-kiyeok         = tikeut + kiyeok */
-  { 0x11031103, 0x1104 }, /* choseong ssangtikeut           = tikeut + tikeut */
-  { 0x11051102, 0x1118 }, /* choseong rieul-nieun           = rieul + nieun */
-  { 0x11051105, 0x1119 }, /* choseong ssangrieul            = rieul + rieul */
-  { 0x1105110b, 0x111b }, /* choseong kapyeounrieul         = rieul + ieung */
-  { 0x11051112, 0x111a }, /* choseong rieul-hieuh           = rieul + hieuh */
-  { 0x11061107, 0x111c }, /* choseong mieum-pieup           = mieum + pieup */
-  { 0x1106110b, 0x111d }, /* choseong kapyeounmieum         = mieum + ieung */
-  { 0x11071100, 0x111e }, /* choseong pieup-kiyeok          = pieup + kiyeok */
-  { 0x11071102, 0x111f }, /* choseong pieup-nieun           = pieup + nieun */
-  { 0x11071103, 0x1120 }, /* choseong pieup-tikeut          = pieup + tikeut */
-  { 0x11071107, 0x1108 }, /* choseong ssangpieup            = pieup + pieup */
-  { 0x11071109, 0x1121 }, /* choseong pieup-sios            = pieup + sios */
-  { 0x1107110b, 0x112b }, /* choseong kapyeounpieup         = pieup + ieung */
-  { 0x1107110c, 0x1127 }, /* choseong pieup-cieuc           = pieup + cieuc */
-  { 0x1107110e, 0x1128 }, /* choseong pieup-chieuch         = pieup + chieuch */
-  { 0x11071110, 0x1129 }, /* choseong pieup-thieuth         = pieup + thieuth */
-  { 0x11071111, 0x112a }, /* choseong pieup-phieuph         = pieup + phieuph */
-  { 0x1108110b, 0x112c }, /* choseong kapyeounssangpieup    = ssangpieup + ieung */
-  { 0x11091100, 0x112d }, /* choseong sios-kiyeok           = sios + kiyeok */
-  { 0x11091102, 0x112e }, /* choseong sios-nieun            = sios + nieun */
-  { 0x11091103, 0x112f }, /* choseong sios-tikeut           = sios + tikeut */
-  { 0x11091105, 0x1130 }, /* choseong sios-rieul            = sios + rieul */
-  { 0x11091106, 0x1131 }, /* choseong sios-mieum            = sios + mieum */
-  { 0x11091107, 0x1132 }, /* choseong sios-pieup            = sios + pieup */
-  { 0x11091109, 0x110a }, /* choseong ssangsios             = sios + sios */
-  { 0x1109110b, 0x1135 }, /* choseong sios-ieung            = sios + ieung */
-  { 0x1109110c, 0x1136 }, /* choseong sios-cieuc            = sios + cieuc */
-  { 0x1109110e, 0x1137 }, /* choseong sios-chieuch          = sios + chieuch */
-  { 0x1109110f, 0x1138 }, /* choseong sios-khieukh          = sios + khieukh */
-  { 0x11091110, 0x1139 }, /* choseong sios-thieuth          = sios + thieuth */
-  { 0x11091111, 0x113a }, /* choseong sios-phieuph          = sios + phieuph */
-  { 0x11091112, 0x113b }, /* choseong sios-hieuh            = sios + hieuh */
-  { 0x110a1109, 0x1134 }, /* choseong sios-ssangsios        = ssangsios + sios */
-  { 0x110b1100, 0x1141 }, /* choseong ieung-kiyeok          = ieung + kiyeok */
-  { 0x110b1103, 0x1142 }, /* choseong ieung-tikeut          = ieung + tikeut */
-  { 0x110b1106, 0x1143 }, /* choseong ieung-mieum           = ieung + mieum */
-  { 0x110b1107, 0x1144 }, /* choseong ieung-pieup           = ieung + pieup */
-  { 0x110b1109, 0x1145 }, /* choseong ieung-sios            = ieung + sios */
-  { 0x110b110b, 0x1147 }, /* choseong ssangieung            = ieung + ieung */
-  { 0x110b110c, 0x1148 }, /* choseong ieung-cieuc           = ieung + cieuc */
-  { 0x110b110e, 0x1149 }, /* choseong ieung-chieuch         = ieung + chieuch */
-  { 0x110b1110, 0x114a }, /* choseong ieung-thieuth         = ieung + thieuth */
-  { 0x110b1111, 0x114b }, /* choseong ieung-phieuph         = ieung + phieuph */
-  { 0x110b1140, 0x1146 }, /* choseong ieung-pansios         = ieung + pansios */
-  { 0x110c110b, 0x114d }, /* choseong cieuc-ieung           = cieuc + ieung */
-  { 0x110c110c, 0x110d }, /* choseong ssangcieuc            = cieuc + cieuc */
-  { 0x110e110f, 0x1152 }, /* choseong chieuch-khieukh       = chieuch + khieukh */
-  { 0x110e1112, 0x1153 }, /* choseong chieuch-hieuh         = chieuch + hieuh */
-  { 0x11111107, 0x1156 }, /* choseong phieuph-pieup         = phieuph + pieup */
-  { 0x1111110b, 0x1157 }, /* choseong kapyeounphieuph       = phieuph + ieung */
-  { 0x11121112, 0x1158 }, /* choseong ssanghieuh            = hieuh + hieuh */
-  { 0x11211100, 0x1122 }, /* choseong pieup-sios-kiyeok     = pieup-sios + kiyeok */
-  { 0x11211103, 0x1123 }, /* choseong pieup-sios-tikeut     = pieup-sios + tikeut */
-  { 0x11211107, 0x1124 }, /* choseong pieup-sios-pieup      = pieup-sios + pieup */
-  { 0x11211109, 0x1125 }, /* choseong pieup-ssangsios       = pieup-sios + sios */
-  { 0x1121110c, 0x1126 }, /* choseong pieup-sios-cieuc      = pieup-sios + cieuc */
-  { 0x11321100, 0x1133 }, /* choseong sios-pieup-kiyeok     = sios-pieup + kiyeok */
-  { 0x113c113c, 0x113d }, /* choseong chitueumssangsios     = chitueumsios + chitueumsios */
-  { 0x113e113e, 0x113f }, /* choseong ceongchieumssangsios  = ceongchieumsios + ceongchieumsios */
-  { 0x114e114e, 0x114f }, /* choseong chitueumssangcieuc    = chitueumcieuc + chitueumcieuc */
-  { 0x11501150, 0x1151 }, /* choseong ceongchieumssangcieuc = ceongchieumcieuc + ceongchieumcieuc */
-  { 0x11611169, 0x1176 }, /* jungseong a-o                  = a + o */
-  { 0x1161116e, 0x1177 }, /* jungseong a-u                  = a + u */
-  { 0x11611175, 0x1162 }, /* jungseong ae                   = a */
-  { 0x11631169, 0x1178 }, /* jungseong ya-o                 = ya + o */
-  { 0x1163116d, 0x1179 }, /* jungseong ya-yo                = ya + yo */
-  { 0x11631175, 0x1164 }, /* jungseong yae                  = ya */
-  { 0x11651169, 0x117a }, /* jungseong eo-o                 = eo + o */
-  { 0x1165116e, 0x117b }, /* jungseong eo-u                 = eo + u */
-  { 0x11651173, 0x117c }, /* jungseong eo-eu                = eo + eu */
-  { 0x11651175, 0x1166 }, /* jungseong e                    = eo */
-  { 0x11671169, 0x117d }, /* jungseong yeo-o                = yeo + o */
-  { 0x1167116e, 0x117e }, /* jungseong yeo-u                = yeo + u */
-  { 0x11671175, 0x1168 }, /* jungseong ye                   = yeo */
-  { 0x11691161, 0x116a }, /* jungseong wa                   = o + a */
-  { 0x11691165, 0x117f }, /* jungseong o-eo                 = o + eo */
-  { 0x11691166, 0x1180 }, /* jungseong o-e                  = o + e */
-  { 0x11691168, 0x1181 }, /* jungseong o-ye                 = o + ye */
-  { 0x11691169, 0x1182 }, /* jungseong o-o                  = o + o */
-  { 0x1169116e, 0x1183 }, /* jungseong o-u                  = o + u */
-  { 0x11691175, 0x116c }, /* jungseong oe                   = o */
-  { 0x116a1175, 0x116b }, /* jungseong wae                  = wa */
-  { 0x116d1163, 0x1184 }, /* jungseong yo-ya                = yo + ya */
-  { 0x116d1164, 0x1185 }, /* jungseong yo-yae               = yo + yae */
-  { 0x116d1167, 0x1186 }, /* jungseong yo-yeo               = yo + yeo */
-  { 0x116d1169, 0x1187 }, /* jungseong yo-o                 = yo + o */
-  { 0x116d1175, 0x1188 }, /* jungseong yo-i                 = yo + i */
-  { 0x116e1161, 0x1189 }, /* jungseong u-a                  = u + a */
-  { 0x116e1162, 0x118a }, /* jungseong u-ae                 = u + ae */
-  { 0x116e1165, 0x116f }, /* jungseong weo                  = u + eo */
-  { 0x116e1168, 0x118c }, /* jungseong u-ye                 = u + ye */
-  { 0x116e116e, 0x118d }, /* jungseong u-u                  = u + u */
-  { 0x116e1175, 0x1171 }, /* jungseong wi                   = u */
-  { 0x116f1173, 0x118b }, /* jungseong u-eo-eu              = weo + eu */
-  { 0x116f1175, 0x1170 }, /* jungseong we                   = weo */
-  { 0x11721161, 0x118e }, /* jungseong yu-a                 = yu + a */
-  { 0x11721165, 0x118f }, /* jungseong yu-eo                = yu + eo */
-  { 0x11721166, 0x1190 }, /* jungseong yu-e                 = yu + e */
-  { 0x11721167, 0x1191 }, /* jungseong yu-yeo               = yu + yeo */
-  { 0x11721168, 0x1192 }, /* jungseong yu-ye                = yu + ye */
-  { 0x1172116e, 0x1193 }, /* jungseong yu-u                 = yu + u */
-  { 0x11721175, 0x1194 }, /* jungseong yu-i                 = yu + i */
-  { 0x1173116e, 0x1195 }, /* jungseong eu-u                 = eu + u */
-  { 0x11731173, 0x1196 }, /* jungseong eu-eu                = eu + eu */
-  { 0x11731175, 0x1174 }, /* jungseong yi                   = eu */
-  { 0x1174116e, 0x1197 }, /* jungseong yi-u                 = yi + u */
-  { 0x11751161, 0x1198 }, /* jungseong i-a                  = i + a */
-  { 0x11751163, 0x1199 }, /* jungseong i-ya                 = i + ya */
-  { 0x11751169, 0x119a }, /* jungseong i-o                  = i + o */
-  { 0x1175116e, 0x119b }, /* jungseong i-u                  = i + u */
-  { 0x11751173, 0x119c }, /* jungseong i-eu                 = i + eu */
-  { 0x1175119e, 0x119d }, /* jungseong i-araea              = i */
-  { 0x119e1165, 0x119f }, /* jungseong araea-eo             = araea + eo */
-  { 0x119e116e, 0x11a0 }, /* jungseong araea-u              = araea + u */
-  { 0x119e1175, 0x11a1 }, /* jungseong araea-i              = araea + i */
-  { 0x119e119e, 0x11a2 }, /* jungseong ssangaraea           = araea + araea */
-  { 0x11a811a8, 0x11a9 }, /* jongseong ssangkiyeok          = kiyeok + kiyeok */
-  { 0x11a811af, 0x11c3 }, /* jongseong kiyeok-rieul         = kiyeok + rieul */
-  { 0x11a811ba, 0x11aa }, /* jongseong kiyeok-sios          = kiyeok */
-  { 0x11aa11a8, 0x11c4 }, /* jongseong kiyeok-sios-kiyeok   = kiyeok-sios + kiyeok */
-  { 0x11ab11a8, 0x11c5 }, /* jongseong nieun-kiyeok         = nieun + kiyeok */
-  { 0x11ab11ae, 0x11c6 }, /* jongseong nieun-tikeut         = nieun + tikeut */
-  { 0x11ab11ba, 0x11c7 }, /* jongseong nieun-sios           = nieun + sios */
-  { 0x11ab11bd, 0x11ac }, /* jongseong nieun-cieuc          = nieun */
-  { 0x11ab11c0, 0x11c9 }, /* jongseong nieun-thieuth        = nieun + thieuth */
-  { 0x11ab11c2, 0x11ad }, /* jongseong nieun-hieuh          = nieun */
-  { 0x11ab11eb, 0x11c8 }, /* jongseong nieun-pansios        = nieun */
-  { 0x11ae11a8, 0x11ca }, /* jongseong tikeut-kiyeok        = tikeut + kiyeok */
-  { 0x11ae11af, 0x11cb }, /* jongseong tikeut-rieul         = tikeut + rieul */
-  { 0x11af11a8, 0x11b0 }, /* jongseong rieul-kiyeok         = rieul + kiyeok */
-  { 0x11af11ab, 0x11cd }, /* jongseong rieul-nieun          = rieul + nieun */
-  { 0x11af11ae, 0x11ce }, /* jongseong rieul-tikeut         = rieul + tikeut */
-  { 0x11af11af, 0x11d0 }, /* jongseong ssangrieul           = rieul + rieul */
-  { 0x11af11b7, 0x11b1 }, /* jongseong rieul-mieum          = rieul */
-  { 0x11af11b8, 0x11b2 }, /* jongseong rieul-pieup          = rieul */
-  { 0x11af11ba, 0x11b3 }, /* jongseong rieul-sios           = rieul */
-  { 0x11af11bf, 0x11d8 }, /* jongseong rieul-khieukh        = rieul + khieukh */
-  { 0x11af11c0, 0x11b4 }, /* jongseong rieul-thieuth        = rieul */
-  { 0x11af11c1, 0x11b5 }, /* jongseong rieul-phieuph        = rieul */
-  { 0x11af11c2, 0x11b6 }, /* jongseong rieul-hieuh          = rieul */
-  { 0x11af11eb, 0x11d7 }, /* jongseong rieul-pansios        = rieul */
-  { 0x11af11f9, 0x11d9 }, /* jongseong rieul-yeorinhieuh    = rieul */
-  { 0x11b011ba, 0x11cc }, /* jongseong rieul-kiyeok-sios    = rieul-kiyeok + sios */
-  { 0x11b111a8, 0x11d1 }, /* jongseong rieul-mieum-kiyeok   = rieul-mieum + kiyeok */
-  { 0x11b111ba, 0x11d2 }, /* jongseong rieul-mieum-sios     = rieul-mieum + sios */
-  { 0x11b211ba, 0x11d3 }, /* jongseong rieul-pieup-sios     = rieul-pieup + sios */
-  { 0x11b211bc, 0x11d5 }, /* jongseong rieul-kapyeounpieup  = rieul-pieup + ieung */
-  { 0x11b211c2, 0x11d4 }, /* jongseong rieul-pieup-hieuh    = rieul-pieup + hieuh */
-  { 0x11b311ba, 0x11d6 }, /* jongseong rieul-ssangsios      = rieul-sios + sios */
-  { 0x11b711a8, 0x11da }, /* jongseong mieum-kiyeok         = mieum + kiyeok */
-  { 0x11b711af, 0x11db }, /* jongseong mieum-rieul          = mieum + rieul */
-  { 0x11b711b8, 0x11dc }, /* jongseong mieum-pieup          = mieum + pieup */
-  { 0x11b711ba, 0x11dd }, /* jongseong mieum-sios           = mieum + sios */
-  { 0x11b711bc, 0x11e2 }, /* jongseong kapyeounmieum        = mieum + ieung */
-  { 0x11b711be, 0x11e0 }, /* jongseong mieum-chieuch        = mieum + chieuch */
-  { 0x11b711c2, 0x11e1 }, /* jongseong mieum-hieuh          = mieum + hieuh */
-  { 0x11b711eb, 0x11df }, /* jongseong mieum-pansios        = mieum */
-  { 0x11b811af, 0x11e3 }, /* jongseong pieup-rieul          = pieup + rieul */
-  { 0x11b811ba, 0x11b9 }, /* jongseong pieup-sios           = pieup */
-  { 0x11b811bc, 0x11e6 }, /* jongseong kapyeounpieup        = pieup + ieung */
-  { 0x11b811c1, 0x11e4 }, /* jongseong pieup-phieuph        = pieup + phieuph */
-  { 0x11b811c2, 0x11e5 }, /* jongseong pieup-hieuh          = pieup + hieuh */
-  { 0x11ba11a8, 0x11e7 }, /* jongseong sios-kiyeok          = sios + kiyeok */
-  { 0x11ba11ae, 0x11e8 }, /* jongseong sios-tikeut          = sios + tikeut */
-  { 0x11ba11af, 0x11e9 }, /* jongseong sios-rieul           = sios + rieul */
-  { 0x11ba11b8, 0x11ea }, /* jongseong sios-pieup           = sios + pieup */
-  { 0x11ba11ba, 0x11bb }, /* jongseong ssangsios            = sios + sios */
-  { 0x11bc11a8, 0x11ec }, /* jongseong ieung-kiyeok         = ieung + kiyeok */
-  { 0x11bc11bc, 0x11ee }, /* jongseong ssangieung           = ieung + ieung */
-  { 0x11bc11bf, 0x11ef }, /* jongseong ieung-khieukh        = ieung + khieukh */
-  { 0x11c111b8, 0x11f3 }, /* jongseong phieuph-pieup        = phieuph + pieup */
-  { 0x11c111bc, 0x11f4 }, /* jongseong kapyeounphieuph      = phieuph + ieung */
-  { 0x11c211ab, 0x11f5 }, /* jongseong hieuh-nieun          = hieuh + nieun */
-  { 0x11c211af, 0x11f6 }, /* jongseong hieuh-rieul          = hieuh + rieul */
-  { 0x11c211b7, 0x11f7 }, /* jongseong hieuh-mieum          = hieuh + mieum */
-  { 0x11c211b8, 0x11f8 }, /* jongseong hieuh-pieup          = hieuh + pieup */
-  { 0x11ce11c2, 0x11cf }, /* jongseong rieul-tikeut-hieuh   = rieul-tikeut + hieuh */
-  { 0x11dd11ba, 0x11de }, /* jongseong mieum-ssangsios      = mieum-sios + sios */
-  { 0x11ec11a8, 0x11ed }, /* jongseong ieung-ssangkiyeok    = ieung-kiyeok + kiyeok */
-  { 0x11f011ba, 0x11f1 }, /* jongseong yesieung-sios        = yesieung + sios */
-  { 0x11f011eb, 0x11f2 }, /* jongseong yesieung-pansios     = yesieung + pansios */
+  { 0x11001100, 0x1101 }, /* choseong kiyeok + kiyeok          = ssangkiyeok */
+  { 0x11001103, 0x115a }, /* choseong kiyeok + tikeut          = kiyeok-tikeut */
+  { 0x11021100, 0x1113 }, /* choseong nieun + kiyeok           = nieun-kiyeok */
+  { 0x11021102, 0x1114 }, /* choseong nieun + nieun            = ssangnieun */
+  { 0x11021103, 0x1115 }, /* choseong nieun + tikeut           = nieun-tikeut */
+  { 0x11021107, 0x1116 }, /* choseong nieun + pieup            = nieun-pieup */
+  { 0x11021109, 0x115b }, /* choseong nieun + sios             = nieun-sios */
+  { 0x1102110c, 0x115c }, /* choseong nieun + cieuc            = nieun-cieuc */
+  { 0x11021112, 0x115d }, /* choseong nieun + hieuh            = nieun-hieuh */
+  { 0x11031100, 0x1117 }, /* choseong tikeut + kiyeok          = tikeut-kiyeok */
+  { 0x11031103, 0x1104 }, /* choseong tikeut + tikeut          = ssangtikeut */
+  { 0x11031105, 0x115e }, /* choseong tikeut + rieul           = tikeut-rieul */
+  { 0x11031106, 0xa960 }, /* choseong tikeut + mieum           = tikeut-mieum */
+  { 0x11031107, 0xa961 }, /* choseong tikeut + pieup           = tikeut-pieup */
+  { 0x11031109, 0xa962 }, /* choseong tikeut + sios            = tikeut-sios */
+  { 0x1103110c, 0xa963 }, /* choseong tikeut + cieuc           = tikeut-cieuc */
+  { 0x11051100, 0xa964 }, /* choseong rieul + kiyeok           = rieul-kiyeok */
+  { 0x11051101, 0xa965 }, /* choseong rieul + ssangkiyeok      = rieul-ssangkiyeok */
+  { 0x11051102, 0x1118 }, /* choseong rieul + nieun            = rieul-nieun */
+  { 0x11051103, 0xa966 }, /* choseong rieul + tikeut           = rieul-tikeut */
+  { 0x11051104, 0xa967 }, /* choseong rieul + ssangtikeut      = rieul-ssangtikeut */
+  { 0x11051105, 0x1119 }, /* choseong rieul + rieul            = ssangrieul */
+  { 0x11051106, 0xa968 }, /* choseong rieul + mieum            = rieul-mieum */
+  { 0x11051107, 0xa969 }, /* choseong rieul + pieup            = rieul-pieup */
+  { 0x11051108, 0xa96a }, /* choseong rieul + ssangpieup       = rieul-ssangpieup */
+  { 0x11051109, 0xa96c }, /* choseong rieul + sios             = rieul-sios */
+  { 0x1105110b, 0x111b }, /* choseong rieul + ieung            = kapyeounrieul */
+  { 0x1105110c, 0xa96d }, /* choseong rieul + cieuc            = rieul-cieuc */
+  { 0x1105110f, 0xa96e }, /* choseong rieul + khieukh          = rieul-khieukh */
+  { 0x11051112, 0x111a }, /* choseong rieul + hieuh            = rieul-hieuh */
+  { 0x1105112b, 0xa96b }, /* choseong rieul + kapyeounpieup    = rieul-kapyeounpieup */
+  { 0x11061100, 0xa96f }, /* choseong mieum + kiyeok           = mieum-kiyeok */
+  { 0x11061103, 0xa970 }, /* choseong mieum + tikeut           = mieum-tikeut */
+  { 0x11061107, 0x111c }, /* choseong mieum + pieup            = mieum-pieup */
+  { 0x11061109, 0xa971 }, /* choseong mieum + sios             = mieum-sios */
+  { 0x1106110b, 0x111d }, /* choseong mieum + ieung            = kapyeounmieum */
+  { 0x11071100, 0x111e }, /* choseong pieup + kiyeok           = pieup-kiyeok */
+  { 0x11071102, 0x111f }, /* choseong pieup + nieun            = pieup-nieun */
+  { 0x11071103, 0x1120 }, /* choseong pieup + tikeut           = pieup-tikeut */
+  { 0x11071107, 0x1108 }, /* choseong pieup + pieup            = ssangpieup */
+  { 0x11071109, 0x1121 }, /* choseong pieup + sios             = pieup-sios */
+  { 0x1107110a, 0x1125 }, /* choseong pieup + ssangsios        = pieup-ssangsios */
+  { 0x1107110b, 0x112b }, /* choseong pieup + ieung            = kapyeounpieup */
+  { 0x1107110c, 0x1127 }, /* choseong pieup + cieuc            = pieup-cieuc */
+  { 0x1107110e, 0x1128 }, /* choseong pieup + chieuch          = pieup-chieuch */
+  { 0x1107110f, 0xa973 }, /* choseong pieup + khieukh          = pieup-khieukh */
+  { 0x11071110, 0x1129 }, /* choseong pieup + thieuth          = pieup-thieuth */
+  { 0x11071111, 0x112a }, /* choseong pieup + phieuph          = pieup-phieuph */
+  { 0x11071112, 0xa974 }, /* choseong pieup + hieuh            = pieup-hieuh */
+  { 0x1107112b, 0x112c }, /* choseong pieup + kapyeounpieup    = kapyeounssangpieup */
+  { 0x1107112d, 0x1122 }, /* choseong pieup + sios-kiyeok      = pieup-sios-kiyeok */
+  { 0x1107112f, 0x1123 }, /* choseong pieup + sios-tikeut      = pieup-sios-tikeut */
+  { 0x11071132, 0x1124 }, /* choseong pieup + sios-pieup       = pieup-sios-pieup */
+  { 0x11071136, 0x1126 }, /* choseong pieup + sios-cieuc       = pieup-sios-cieuc */
+  { 0x11071139, 0xa972 }, /* choseong pieup + sios-thieuth     = pieup-sios-thieuth */
+  { 0x1108110b, 0x112c }, /* choseong ssangpieup + ieung       = kapyeounssangpieup */
+  { 0x11091100, 0x112d }, /* choseong sios + kiyeok            = sios-kiyeok */
+  { 0x11091102, 0x112e }, /* choseong sios + nieun             = sios-nieun */
+  { 0x11091103, 0x112f }, /* choseong sios + tikeut            = sios-tikeut */
+  { 0x11091105, 0x1130 }, /* choseong sios + rieul             = sios-rieul */
+  { 0x11091106, 0x1131 }, /* choseong sios + mieum             = sios-mieum */
+  { 0x11091107, 0x1132 }, /* choseong sios + pieup             = sios-pieup */
+  { 0x11091109, 0x110a }, /* choseong sios + sios              = ssangsios */
+  { 0x1109110a, 0x1134 }, /* choseong sios + ssangsios         = sios-ssangsios */
+  { 0x1109110b, 0x1135 }, /* choseong sios + ieung             = sios-ieung */
+  { 0x1109110c, 0x1136 }, /* choseong sios + cieuc             = sios-cieuc */
+  { 0x1109110e, 0x1137 }, /* choseong sios + chieuch           = sios-chieuch */
+  { 0x1109110f, 0x1138 }, /* choseong sios + khieukh           = sios-khieukh */
+  { 0x11091110, 0x1139 }, /* choseong sios + thieuth           = sios-thieuth */
+  { 0x11091111, 0x113a }, /* choseong sios + phieuph           = sios-phieuph */
+  { 0x11091112, 0x113b }, /* choseong sios + hieuh             = sios-hieuh */
+  { 0x1109111e, 0x1133 }, /* choseong sios + pieup-kiyeok      = sios-pieup-kiyeok */
+  { 0x11091132, 0xa975 }, /* choseong sios + sios-pieup        = ssangsios-pieup */
+  { 0x110a1107, 0xa975 }, /* choseong ssangsios + pieup        = ssangsios-pieup */
+  { 0x110a1109, 0x1134 }, /* choseong ssangsios + sios         = sios-ssangsios */
+  { 0x110b1100, 0x1141 }, /* choseong ieung + kiyeok           = ieung-kiyeok */
+  { 0x110b1103, 0x1142 }, /* choseong ieung + tikeut           = ieung-tikeut */
+  { 0x110b1105, 0xa976 }, /* choseong ieung + rieul            = ieung-rieul */
+  { 0x110b1106, 0x1143 }, /* choseong ieung + mieum            = ieung-mieum */
+  { 0x110b1107, 0x1144 }, /* choseong ieung + pieup            = ieung-pieup */
+  { 0x110b1109, 0x1145 }, /* choseong ieung + sios             = ieung-sios */
+  { 0x110b110b, 0x1147 }, /* choseong ieung + ieung            = ssangieung */
+  { 0x110b110c, 0x1148 }, /* choseong ieung + cieuc            = ieung-cieuc */
+  { 0x110b110e, 0x1149 }, /* choseong ieung + chieuch          = ieung-chieuch */
+  { 0x110b1110, 0x114a }, /* choseong ieung + thieuth          = ieung-thieuth */
+  { 0x110b1111, 0x114b }, /* choseong ieung + phieuph          = ieung-phieuph */
+  { 0x110b1112, 0xa977 }, /* choseong ieung + hieuh            = ieung-hieuh */
+  { 0x110b1140, 0x1146 }, /* choseong ieung + pansios          = ieung-pansios */
+  { 0x110c110b, 0x114d }, /* choseong cieuc + ieung            = cieuc-ieung */
+  { 0x110c110c, 0x110d }, /* choseong cieuc + cieuc            = ssangcieuc */
+  { 0x110d1112, 0xa978 }, /* choseong ssangcieuc + hieuh       = ssangcieuc-hieuh */
+  { 0x110e110f, 0x1152 }, /* choseong chieuch + khieukh        = chieuch-khieukh */
+  { 0x110e1112, 0x1153 }, /* choseong chieuch + hieuh          = chieuch-hieuh */
+  { 0x11101110, 0xa979 }, /* choseong thieuth + thieuth        = ssangthieuth */
+  { 0x11111107, 0x1156 }, /* choseong phieuph + pieup          = phieuph-pieup */
+  { 0x1111110b, 0x1157 }, /* choseong phieuph + ieung          = kapyeounphieuph */
+  { 0x11111112, 0xa97a }, /* choseong phieuph + hieuh          = phieuph-hieuh */
+  { 0x11121109, 0xa97b }, /* choseong hieuh + sios             = hieuh-sios */
+  { 0x11121112, 0x1158 }, /* choseong hieuh + hieuh            = ssanghieuh */
+  { 0x11211100, 0x1122 }, /* choseong pieup-sios + kiyeok      = pieup-sios-kiyeok */
+  { 0x11211103, 0x1123 }, /* choseong pieup-sios + tikeut      = pieup-sios-tikeut */
+  { 0x11211107, 0x1124 }, /* choseong pieup-sios + pieup       = pieup-sios-pieup */
+  { 0x11211109, 0x1125 }, /* choseong pieup-sios + sios        = pieup-ssangsios */
+  { 0x1121110c, 0x1126 }, /* choseong pieup-sios + cieuc       = pieup-sios-cieuc */
+  { 0x11211110, 0xa972 }, /* choseong pieup-sios + thieuth     = pieup-sios-thieuth */
+  { 0x11321100, 0x1133 }, /* choseong sios-pieup + kiyeok      = sios-pieup-kiyeok */
+  { 0x113c113c, 0x113d }, /* choseong chitueumsios + chitueumsios = chitueumssangsios */
+  { 0x113e113e, 0x113f }, /* choseong ceongchieumsios + ceongchieumsios = ceongchieumssangsios */
+  { 0x114e114e, 0x114f }, /* choseong chitueumcieuc + chitueumcieuc = chitueumssangcieuc */
+  { 0x11501150, 0x1151 }, /* choseong ceongchieumcieuc + ceongchieumcieuc = ceongchieumssangcieuc */
+  { 0x11591159, 0xa97c }, /* choseong yeorinhieuh + yeorinhieuh = ssangyeorinhieuh */
+  { 0x11611161, 0x119e }, /* jungseong a + a                   = arae-a */
+  { 0x11611169, 0x1176 }, /* jungseong a + o                   = a-o */
+  { 0x1161116e, 0x1177 }, /* jungseong a + u                   = a-u */
+  { 0x11611173, 0x11a3 }, /* jungseong a + eu                  = a-eu */
+  { 0x11611175, 0x1162 }, /* jungseong a + i                   = ae */
+  { 0x11631169, 0x1178 }, /* jungseong ya + o                  = ya-o */
+  { 0x1163116d, 0x1179 }, /* jungseong ya + yo                 = ya-yo */
+  { 0x1163116e, 0x11a4 }, /* jungseong ya + u                  = ya-u */
+  { 0x11631175, 0x1164 }, /* jungseong ya + i                  = yae */
+  { 0x11651169, 0x117a }, /* jungseong eo + o                  = eo-o */
+  { 0x1165116e, 0x117b }, /* jungseong eo + u                  = eo-u */
+  { 0x11651173, 0x117c }, /* jungseong eo + eu                 = eo-eu */
+  { 0x11651175, 0x1166 }, /* jungseong eo + i                  = e */
+  { 0x11671163, 0x11a5 }, /* jungseong yeo + ya                = yeo-ya */
+  { 0x11671169, 0x117d }, /* jungseong yeo + o                 = yeo-o */
+  { 0x1167116e, 0x117e }, /* jungseong yeo + u                 = yeo-u */
+  { 0x11671175, 0x1168 }, /* jungseong yeo + i                 = ye */
+  { 0x11691161, 0x116a }, /* jungseong o + a                   = wa */
+  { 0x11691162, 0x116b }, /* jungseong o + ae                  = wae */
+  { 0x11691163, 0x11a6 }, /* jungseong o + ya                  = o-ya */
+  { 0x11691164, 0x11a7 }, /* jungseong o + yae                 = o-yae */
+  { 0x11691165, 0x117f }, /* jungseong o + eo                  = o-eo */
+  { 0x11691166, 0x1180 }, /* jungseong o + e                   = o-e */
+  { 0x11691167, 0xd7b0 }, /* jungseong o + yeo                 = o-yeo */
+  { 0x11691168, 0x1181 }, /* jungseong o + ye                  = o-ye */
+  { 0x11691169, 0x1182 }, /* jungseong o + o                   = o-o */
+  { 0x1169116e, 0x1183 }, /* jungseong o + u                   = o-u */
+  { 0x11691175, 0x116c }, /* jungseong o + i                   = oe */
+  { 0x116a1175, 0x116b }, /* jungseong wa + i                  = wae */
+  { 0x116d1161, 0xd7b2 }, /* jungseong yo + a                  = yo-a */
+  { 0x116d1162, 0xd7b3 }, /* jungseong yo + ae                 = yo-ae */
+  { 0x116d1163, 0x1184 }, /* jungseong yo + ya                 = yo-ya */
+  { 0x116d1164, 0x1185 }, /* jungseong yo + yae                = yo-yae */
+  { 0x116d1165, 0xd7b4 }, /* jungseong yo + eo                 = yo-eo */
+  { 0x116d1167, 0x1186 }, /* jungseong yo + yeo                = yo-yeo */
+  { 0x116d1169, 0x1187 }, /* jungseong yo + o                  = yo-o */
+  { 0x116d1175, 0x1188 }, /* jungseong yo + i                  = yo-i */
+  { 0x116e1161, 0x1189 }, /* jungseong u + a                   = u-a */
+  { 0x116e1162, 0x118a }, /* jungseong u + ae                  = u-ae */
+  { 0x116e1165, 0x116f }, /* jungseong u + eo                  = weo */
+  { 0x116e1166, 0x1170 }, /* jungseong u + e                   = we */
+  { 0x116e1167, 0xd7b5 }, /* jungseong u + yeo                 = u-yeo */
+  { 0x116e1168, 0x118c }, /* jungseong u + ye                  = u-ye */
+  { 0x116e116e, 0x118d }, /* jungseong u + u                   = u-u */
+  { 0x116e1175, 0x1171 }, /* jungseong u + i                   = wi */
+  { 0x116e117c, 0x118b }, /* jungseong u + eo-eu               = u-eo-eu */
+  { 0x116ed7c4, 0xd7b6 }, /* jungseong u + i-i                 = u-i-i */
+  { 0x116f1173, 0x118b }, /* jungseong weo + eu                = u-eo-eu */
+  { 0x116f1175, 0x1170 }, /* jungseong weo + i                 = we */
+  { 0x11711175, 0xd7b6 }, /* jungseong wi + i                  = u-i-i */
+  { 0x11721161, 0x118e }, /* jungseong yu + a                  = yu-a */
+  { 0x11721162, 0xd7b7 }, /* jungseong yu + ae                 = yu-ae */
+  { 0x11721165, 0x118f }, /* jungseong yu + eo                 = yu-eo */
+  { 0x11721166, 0x1190 }, /* jungseong yu + e                  = yu-e */
+  { 0x11721167, 0x1191 }, /* jungseong yu + yeo                = yu-yeo */
+  { 0x11721168, 0x1192 }, /* jungseong yu + ye                 = yu-ye */
+  { 0x11721169, 0xd7b8 }, /* jungseong yu + o                  = yu-o */
+  { 0x1172116e, 0x1193 }, /* jungseong yu + u                  = yu-u */
+  { 0x11721175, 0x1194 }, /* jungseong yu + i                  = yu-i */
+  { 0x11731161, 0xd7b9 }, /* jungseong eu + a                  = eu-a */
+  { 0x11731165, 0xd7ba }, /* jungseong eu + eo                 = eu-eo */
+  { 0x11731166, 0xd7bb }, /* jungseong eu + e                  = eu-e */
+  { 0x11731169, 0xd7bc }, /* jungseong eu + o                  = eu-o */
+  { 0x1173116e, 0x1195 }, /* jungseong eu + u                  = eu-u */
+  { 0x11731173, 0x1196 }, /* jungseong eu + eu                 = eu-eu */
+  { 0x11731175, 0x1174 }, /* jungseong eu + i                  = yi */
+  { 0x1174116e, 0x1197 }, /* jungseong yi + u                  = yi-u */
+  { 0x11751161, 0x1198 }, /* jungseong i + a                   = i-a */
+  { 0x11751163, 0x1199 }, /* jungseong i + ya                  = i-ya */
+  { 0x11751164, 0xd7be }, /* jungseong i + yae                 = i-yae */
+  { 0x11751167, 0xd7bf }, /* jungseong i + yeo                 = i-yeo */
+  { 0x11751168, 0xd7c0 }, /* jungseong i + ye                  = i-ye */
+  { 0x11751169, 0x119a }, /* jungseong i + o                   = i-o */
+  { 0x1175116d, 0xd7c2 }, /* jungseong i + yo                  = i-yo */
+  { 0x1175116e, 0x119b }, /* jungseong i + u                   = i-u */
+  { 0x11751172, 0xd7c3 }, /* jungseong i + yu                  = i-yu */
+  { 0x11751173, 0x119c }, /* jungseong i + eu                  = i-eu */
+  { 0x11751175, 0xd7c4 }, /* jungseong i + i                   = i-i */
+  { 0x11751178, 0xd7bd }, /* jungseong i + ya-o                = i-ya-o */
+  { 0x1175119e, 0x119d }, /* jungseong i + araea               = i-araea */
+  { 0x11821175, 0xd7b1 }, /* jungseong o-o + i                 = o-o-i */
+  { 0x11991169, 0xd7bd }, /* jungseong i-ya + o                = i-ya-o */
+  { 0x119a1175, 0xd7c1 }, /* jungseong i-o + i                 = i-o-i */
+  { 0x119e1161, 0xd7c5 }, /* jungseong araea + a               = araea-a */
+  { 0x119e1165, 0x119f }, /* jungseong araea + eo              = araea-eo */
+  { 0x119e1166, 0xd7c6 }, /* jungseong araea + e               = araea-e */
+  { 0x119e116e, 0x11a0 }, /* jungseong araea + u               = araea-u */
+  { 0x119e1175, 0x11a1 }, /* jungseong araea + i               = araea-i */
+  { 0x119e119e, 0x11a2 }, /* jungseong araea + araea           = ssangaraea */
+  { 0x11a811a8, 0x11a9 }, /* jongseong kiyeok + kiyeok         = ssangkiyeok */
+  { 0x11a811ab, 0x11fa }, /* jongseong kiyeok + nieun          = kiyeok-nieun */
+  { 0x11a811af, 0x11c3 }, /* jongseong kiyeok + rieul          = kiyeok-rieul */
+  { 0x11a811b8, 0x11fb }, /* jongseong kiyeok + pieup          = kiyeok-pieup */
+  { 0x11a811ba, 0x11aa }, /* jongseong kiyeok + sios           = kiyeok-sios */
+  { 0x11a811be, 0x11fc }, /* jongseong kiyeok + chieuch        = kiyeok-chieuch */
+  { 0x11a811bf, 0x11fd }, /* jongseong kiyeok + khieukh        = kiyeok-khieukh */
+  { 0x11a811c2, 0x11fe }, /* jongseong kiyeok + hieuh          = kiyeok-hieuh */
+  { 0x11a811e7, 0x11c4 }, /* jongseong kiyeok + sios-kiyeok    = kiyeok-sios-kiyeok */
+  { 0x11aa11a8, 0x11c4 }, /* jongseong kiyeok-sios + kiyeok    = kiyeok-sios-kiyeok */
+  { 0x11ab11a8, 0x11c5 }, /* jongseong nieun + kiyeok          = nieun-kiyeok */
+  { 0x11ab11ab, 0x11ff }, /* jongseong nieun + nieun           = ssangnieun */
+  { 0x11ab11ae, 0x11c6 }, /* jongseong nieun + tikeut          = nieun-tikeut */
+  { 0x11ab11af, 0xd7cb }, /* jongseong nieun + rieul           = nieun-rieul */
+  { 0x11ab11ba, 0x11c7 }, /* jongseong nieun + sios            = nieun-sios */
+  { 0x11ab11bd, 0x11ac }, /* jongseong nieun + cieuc           = nieun-cieuc */
+  { 0x11ab11be, 0xd7cc }, /* jongseong nieun + chieuch         = nieun-chieuch */
+  { 0x11ab11c0, 0x11c9 }, /* jongseong nieun + thieuth         = nieun-thieuth */
+  { 0x11ab11c2, 0x11ad }, /* jongseong nieun + hieuh           = nieun-hieuh */
+  { 0x11ab11eb, 0x11c8 }, /* jongseong nieun + pansios         = nieun-pansios */
+  { 0x11ae11a8, 0x11ca }, /* jongseong tikeut + kiyeok         = tikeut-kiyeok */
+  { 0x11ae11ae, 0xd7cd }, /* jongseong tikeut + tikeut         = ssangtikeut */
+  { 0x11ae11af, 0x11cb }, /* jongseong tikeut + rieul          = tikeut-rieul */
+  { 0x11ae11b8, 0xd7cf }, /* jongseong tikeut + pieup          = tikeut-pieup */
+  { 0x11ae11ba, 0xd7d0 }, /* jongseong tikeut + sios           = tikeut-sios */
+  { 0x11ae11bd, 0xd7d2 }, /* jongseong tikeut + cieuc          = tikeut-cieuc */
+  { 0x11ae11be, 0xd7d3 }, /* jongseong tikeut + chieuch        = tikeut-chieuch */
+  { 0x11ae11c0, 0xd7d4 }, /* jongseong tikeut + thieuth        = tikeut-thieuth */
+  { 0x11ae11e7, 0xd7d1 }, /* jongseong tikeut + sios-kiyeok    = tikeut-sios-kiyeok */
+  { 0x11aed7cf, 0xd7ce }, /* jongseong tikeut + tikeut-pieup   = ssangtikeut-pieup */
+  { 0x11af11a8, 0x11b0 }, /* jongseong rieul + kiyeok          = rieul-kiyeok */
+  { 0x11af11a9, 0xd7d5 }, /* jongseong rieul + ssangkiyeok     = rieul-ssangkiyeok */
+  { 0x11af11aa, 0x11cc }, /* jongseong rieul + kiyeok-sios     = rieul-kiyeok-sios */
+  { 0x11af11ab, 0x11cd }, /* jongseong rieul + nieun           = rieul-nieun */
+  { 0x11af11ae, 0x11ce }, /* jongseong rieul + tikeut          = rieul-tikeut */
+  { 0x11af11af, 0x11d0 }, /* jongseong rieul + rieul           = ssangrieul */
+  { 0x11af11b7, 0x11b1 }, /* jongseong rieul + mieum           = rieul-mieum */
+  { 0x11af11b8, 0x11b2 }, /* jongseong rieul + pieup           = rieul-pieup */
+  { 0x11af11b9, 0x11d3 }, /* jongseong rieul + pieup-sios      = rieul-pieup-sios */
+  { 0x11af11ba, 0x11b3 }, /* jongseong rieul + sios            = rieul-sios */
+  { 0x11af11bb, 0x11d6 }, /* jongseong rieul + ssangsios       = rieul-ssangsios */
+  { 0x11af11bc, 0xd7dd }, /* jongseong rieul + ieung           = kapyeounrieul */
+  { 0x11af11bf, 0x11d8 }, /* jongseong rieul + khieukh         = rieul-khieukh */
+  { 0x11af11c0, 0x11b4 }, /* jongseong rieul + thieuth         = rieul-thieuth */
+  { 0x11af11c1, 0x11b5 }, /* jongseong rieul + phieuph         = rieul-phieuph */
+  { 0x11af11c2, 0x11b6 }, /* jongseong rieul + hieuh           = rieul-hieuh */
+  { 0x11af11d8, 0xd7d7 }, /* jongseong rieul + rieul-khieukh   = ssangrieul-khieukh */
+  { 0x11af11da, 0x11d1 }, /* jongseong rieul + mieum-kiyeok    = rieul-mieum-kiyeok */
+  { 0x11af11dd, 0x11d2 }, /* jongseong rieul + mieum-sios      = rieul-mieum-sios */
+  { 0x11af11e1, 0xd7d8 }, /* jongseong rieul + mieum-hieuh     = rieul-mieum-hieuh */
+  { 0x11af11e4, 0xd7da }, /* jongseong rieul + pieup-phieuph   = rieul-pieup-phieuph */
+  { 0x11af11e5, 0x11d4 }, /* jongseong rieul + pieup-hieuh     = rieul-pieup-hieuh */
+  { 0x11af11e6, 0x11d5 }, /* jongseong rieul + kapyeounpieup   = rieul-kapyeounpieup */
+  { 0x11af11eb, 0x11d7 }, /* jongseong rieul + pansios         = rieul-pansios */
+  { 0x11af11f0, 0xd7db }, /* jongseong rieul + yesieung        = rieul-yesieung */
+  { 0x11af11f9, 0x11d9 }, /* jongseong rieul + yeorinhieuh     = rieul-yeorinhieuh */
+  { 0x11af11fe, 0xd7d6 }, /* jongseong rieul + kiyeok-hieuh    = rieul-kiyeok-hieuh */
+  { 0x11afd7e3, 0xd7d9 }, /* jongseong rieul + pieup-tikeut    = rieul-pieup-tikeut */
+  { 0x11b011a8, 0xd7d5 }, /* jongseong rieul-kiyeok + kiyeok   = rieul-ssangkiyeok */
+  { 0x11b011ba, 0x11cc }, /* jongseong rieul-kiyeok + sios     = rieul-kiyeok-sios */
+  { 0x11b011c2, 0xd7d6 }, /* jongseong rieul-kiyeok + hieuh    = rieul-kiyeok-hieuh */
+  { 0x11b111a8, 0x11d1 }, /* jongseong rieul-mieum + kiyeok    = rieul-mieum-kiyeok */
+  { 0x11b111ba, 0x11d2 }, /* jongseong rieul-mieum + sios      = rieul-mieum-sios */
+  { 0x11b111c2, 0xd7d8 }, /* jongseong rieul-mieum + hieuh     = rieul-mieum-hieuh */
+  { 0x11b211ae, 0xd7d9 }, /* jongseong rieul-pieup + tikeut    = rieul-pieup-tikeut */
+  { 0x11b211ba, 0x11d3 }, /* jongseong rieul-pieup + sios      = rieul-pieup-sios */
+  { 0x11b211bc, 0x11d5 }, /* jongseong rieul-pieup + ieung     = rieul-kapyeounpieup */
+  { 0x11b211c1, 0xd7da }, /* jongseong rieul-pieup + phieuph   = rieul-pieup-phieuph */
+  { 0x11b211c2, 0x11d4 }, /* jongseong rieul-pieup + hieuh     = rieul-pieup-hieuh */
+  { 0x11b311ba, 0x11d6 }, /* jongseong rieul-sios + sios       = rieul-ssangsios */
+  { 0x11b711a8, 0x11da }, /* jongseong mieum + kiyeok          = mieum-kiyeok */
+  { 0x11b711ab, 0xd7de }, /* jongseong mieum + nieun           = mieum-nieun */
+  { 0x11b711af, 0x11db }, /* jongseong mieum + rieul           = mieum-rieul */
+  { 0x11b711b7, 0xd7e0 }, /* jongseong mieum + mieum           = ssangmieum */
+  { 0x11b711b8, 0x11dc }, /* jongseong mieum + pieup           = mieum-pieup */
+  { 0x11b711b9, 0xd7e1 }, /* jongseong mieum + pieup-sios      = mieum-pieup-sios */
+  { 0x11b711ba, 0x11dd }, /* jongseong mieum + sios            = mieum-sios */
+  { 0x11b711bb, 0x11de }, /* jongseong mieum + ssangsios       = mieum-ssangsios */
+  { 0x11b711bc, 0x11e2 }, /* jongseong mieum + ieung           = kapyeounmieum */
+  { 0x11b711bd, 0xd7e2 }, /* jongseong mieum + cieuc           = mieum-cieuc */
+  { 0x11b711be, 0x11e0 }, /* jongseong mieum + chieuch         = mieum-chieuch */
+  { 0x11b711c2, 0x11e1 }, /* jongseong mieum + hieuh           = mieum-hieuh */
+  { 0x11b711eb, 0x11df }, /* jongseong mieum + pansios         = mieum-pansios */
+  { 0x11b711ff, 0xd7df }, /* jongseong mieum + ssangnieun      = mieum-ssangnieun */
+  { 0x11b811ae, 0xd7e3 }, /* jongseong pieup + tikeut          = pieup-tikeut */
+  { 0x11b811af, 0x11e3 }, /* jongseong pieup + rieul           = pieup-rieul */
+  { 0x11b811b5, 0xd7e4 }, /* jongseong pieup + rieul-phieuph   = pieup-rieul-phieuph */
+  { 0x11b811b7, 0xd7e5 }, /* jongseong pieup + mieum           = pieup-mieum */
+  { 0x11b811b8, 0xd7e6 }, /* jongseong pieup + pieup           = ssangpieup */
+  { 0x11b811ba, 0x11b9 }, /* jongseong pieup + sios            = pieup-sios */
+  { 0x11b811bc, 0x11e6 }, /* jongseong pieup + ieung           = kapyeounpieup */
+  { 0x11b811bd, 0xd7e8 }, /* jongseong pieup + cieuc           = pieup-cieuc */
+  { 0x11b811be, 0xd7e9 }, /* jongseong pieup + chieuch         = pieup-chieuch */
+  { 0x11b811c1, 0x11e4 }, /* jongseong pieup + phieuph         = pieup-phieuph */
+  { 0x11b811c2, 0x11e5 }, /* jongseong pieup + hieuh           = pieup-hieuh */
+  { 0x11b811e8, 0xd7e7 }, /* jongseong pieup + sios-tikeut     = pieup-sios-tikeut */
+  { 0x11b911ae, 0xd7e7 }, /* jongseong pieup-sios + tikeut     = pieup-sios-tikeut */
+  { 0x11ba11a8, 0x11e7 }, /* jongseong sios + kiyeok           = sios-kiyeok */
+  { 0x11ba11ae, 0x11e8 }, /* jongseong sios + tikeut           = sios-tikeut */
+  { 0x11ba11af, 0x11e9 }, /* jongseong sios + rieul            = sios-rieul */
+  { 0x11ba11b7, 0xd7ea }, /* jongseong sios + mieum            = sios-mieum */
+  { 0x11ba11b8, 0x11ea }, /* jongseong sios + pieup            = sios-pieup */
+  { 0x11ba11ba, 0x11bb }, /* jongseong sios + sios             = ssangsios */
+  { 0x11ba11bd, 0xd7ef }, /* jongseong sios + cieuc            = sios-cieuc */
+  { 0x11ba11be, 0xd7f0 }, /* jongseong sios + chieuch          = sios-chieuch */
+  { 0x11ba11c0, 0xd7f1 }, /* jongseong sios + thieuth          = sios-thieuth */
+  { 0x11ba11c2, 0xd7f2 }, /* jongseong sios + hieuh            = sios-hieuh */
+  { 0x11ba11e6, 0xd7eb }, /* jongseong sios + kapyeounpieup    = sios-kapyeounpieup */
+  { 0x11ba11e7, 0xd7ec }, /* jongseong sios + sios-kiyeok      = ssangsios-kiyeok */
+  { 0x11ba11e8, 0xd7ed }, /* jongseong sios + sios-tikeut      = ssangsios-tikeut */
+  { 0x11ba11eb, 0xd7ee }, /* jongseong sios + pansios          = sios-pansios */
+  { 0x11bb11a8, 0xd7ec }, /* jongseong ssangsios + kiyeok      = ssangsios-kiyeok */
+  { 0x11bb11ae, 0xd7ed }, /* jongseong ssangsios + tikeut      = ssangsios-tikeut */
+  { 0x11bd11b8, 0xd7f7 }, /* jongseong cieuc + pieup           = cieuc-pieup */
+  { 0x11bd11bd, 0xd7f9 }, /* jongseong cieuc + cieuc           = ssangcieuc */
+  { 0x11bdd7e6, 0xd7f8 }, /* jongseong cieuc + ssangpieup      = cieuc-ssangpieup */
+  { 0x11c111b8, 0x11f3 }, /* jongseong phieuph + pieup         = phieuph-pieup */
+  { 0x11c111ba, 0xd7fa }, /* jongseong phieuph + sios          = phieuph-sios */
+  { 0x11c111bc, 0x11f4 }, /* jongseong phieuph + ieung         = kapyeounphieuph */
+  { 0x11c111c0, 0xd7fb }, /* jongseong phieuph + thieuth       = phieuph-thieuth */
+  { 0x11c211ab, 0x11f5 }, /* jongseong hieuh + nieun           = hieuh-nieun */
+  { 0x11c211af, 0x11f6 }, /* jongseong hieuh + rieul           = hieuh-rieul */
+  { 0x11c211b7, 0x11f7 }, /* jongseong hieuh + mieum           = hieuh-mieum */
+  { 0x11c211b8, 0x11f8 }, /* jongseong hieuh + pieup           = hieuh-pieup */
+  { 0x11ce11c2, 0x11cf }, /* jongseong rieul-tikeut + hieuh    = rieul-tikeut-hieuh */
+  { 0x11d011bf, 0xd7d7 }, /* jongseong ssangrieul + khieukh    = ssangrieul-khieukh */
+  { 0x11d911c2, 0xd7dc }, /* jongseong rieul-yeorinhieuh + hieuh = rieul-yeorinhieuh-hieuh */
+  { 0x11dc11ba, 0xd7e1 }, /* jongseong mieum-pieup + sios      = mieum-pieup-sios */
+  { 0x11dd11ba, 0x11de }, /* jongseong mieum-sios + sios       = mieum-ssangsios */
+  { 0x11e311c1, 0xd7e4 }, /* jongseong pieup-rieul + phieuph   = pieup-rieul-phieuph */
+  { 0x11ea11bc, 0xd7eb }, /* jongseong sios-pieup + ieung      = sios-kapyeounpieup */
+  { 0x11eb11b8, 0xd7f3 }, /* jongseong pansios + pieup         = pansios-pieup */
+  { 0x11eb11e6, 0xd7f4 }, /* jongseong pansios + kapyeounpieup = pansios-kapyeounpieup */
+  { 0x11ec11a8, 0x11ed }, /* jongseong ieung-kiyeok + kiyeok   = ieung-ssangkiyeok */
+  { 0x11f011a8, 0x11ec }, /* jongseong yesieung + kiyeok       = yesieung-kiyeok */
+  { 0x11f011a9, 0x11ed }, /* jongseong yesieung + ssangkiyeok  = yesieung-ssangkiyeok */
+  { 0x11f011b7, 0xd7f5 }, /* jongseong yesieung + mieum        = yesieung-mieum */
+  { 0x11f011ba, 0x11f1 }, /* jongseong yesieung + sios         = yesieung-sios */
+  { 0x11f011bf, 0x11ef }, /* jongseong yesieung + khieukh      = yesieung-khieukh */
+  { 0x11f011c2, 0xd7f6 }, /* jongseong yesieung + hieuh        = yesieung-hieuh */
+  { 0x11f011eb, 0x11f2 }, /* jongseong yesieung + pansios      = yesieung-pansios */
+  { 0x11f011f0, 0x11ee }, /* jongseong yesieung + yesieung     = ssangyesieung */
+  { 0xa9641100, 0xa965 }, /* choseong rieul-kiyeok + kiyeok    = rieul-ssangkiyeok */
+  { 0xa9661103, 0xa967 }, /* choseong rieul-tikeut + tikeut    = rieul-ssangtikeut */
+  { 0xa9691107, 0xa96a }, /* choseong rieul-pieup + pieup      = rieul-ssangpieup */
+  { 0xa969110b, 0xa96b }, /* choseong rieul-pieup + ieung      = rieul-kapyeounpieup */
+  { 0xd7c51161, 0x11a2 }, /* jungseong araea-a + a             = ssangaraea */
+  { 0xd7cd11b8, 0xd7ce }, /* jongseong ssangtikeut + pieup     = ssangtikeut-pieup */
+  { 0xd7d011a8, 0xd7d1 }, /* jongseong tikeut-sios + kiyeok    = tikeut-sios-kiyeok */
+  { 0xd7de11ab, 0xd7df }, /* jongseong mieum-nieun + nieun     = mieum-ssangnieun */
+  { 0xd7f311bc, 0xd7f4 }, /* jongseong pansios-pieup + ieung   = pansios-kapyeounpieup */
+  { 0xd7f711b8, 0xd7f8 }, /* jongseong cieuc-pieup + pieup     = cieuc-ssangpieup */
+};
+
+static const HangulCombinationItem hangul_combination_table_ahn[] = {
+  { 0x11001103, 0x1104 }, /* choseong  kiyeok       + tikeut = ssangtikeut   */
+  { 0x1100110b, 0x1101 }, /* choseong  kiyeok       + ieung  = ssangkiyeok   */
+  { 0x11001112, 0x110f }, /* choseong  kiyeok       + hieuh  = khieukh       */
+  { 0x11021109, 0x110a }, /* choseong  nieun        + sios   = ssangsios     */
+  { 0x11031100, 0x1104 }, /* choseong  tikeut       + kiyeok = ssangtikeut   */
+  { 0x1103110c, 0x110d }, /* choseong  tikeut       + cieuc  = ssangcieuc    */
+  { 0x11031112, 0x1110 }, /* choseong  tikeut       + hieuh  = thieuth       */
+  { 0x1107110c, 0x1108 }, /* choseong  pieup        + cieuc  = ssangpieup    */
+  { 0x11071112, 0x1111 }, /* choseong  pieup        + hieuh  = phieuph       */
+  { 0x11091102, 0x110a }, /* choseong  sios         + nieun  = ssangsios     */
+  { 0x110b1100, 0x1101 }, /* choseong  ieung        + kiyeok = ssangkiyeok   */
+  { 0x110c1103, 0x110d }, /* choseong  cieuc        + tikeut = ssangcieuc    */
+  { 0x110c1107, 0x1108 }, /* choseong  cieuc        + pieup  = ssangpieup    */
+  { 0x110c1112, 0x110e }, /* choseong  cieuc        + hieuh  = chieuch       */
+  { 0x11121100, 0x110f }, /* choseong  hieuh        + kiyeok = khieukh       */
+  { 0x11121103, 0x1110 }, /* choseong  hieuh        + tikeut = thieuth       */
+  { 0x11121107, 0x1111 }, /* choseong  hieuh        + pieup  = phieuph       */
+  { 0x1112110c, 0x110e }, /* choseong  hieuh        + cieuc  = chieuch       */
+  { 0x11611169, 0x116a }, /* jungseong a            + o      = wa            */
+  { 0x11611175, 0x1162 }, /* jungseong a            + i      = ae            */
+  { 0x11621169, 0x116b }, /* jungseong ae           + o      = wae           */
+  { 0x11631175, 0x1164 }, /* jungseong ya           + i      = yae           */
+  { 0x1165116e, 0x116f }, /* jungseong eo           + u      = weo           */
+  { 0x11651175, 0x1166 }, /* jungseong eo           + i      = e             */
+  { 0x1166116e, 0x1170 }, /* jungseong e            + u      = we            */
+  { 0x11671175, 0x1168 }, /* jungseong yeo          + i      = ye            */
+  { 0x11691161, 0x116a }, /* jungseong o            + a      = wa            */
+  { 0x11691175, 0x116c }, /* jungseong o            + i      = oe            */
+  { 0x116a1175, 0x116b }, /* jungseong wa           + i      = wae           */
+  { 0x116c1161, 0x116b }, /* jungseong oe           + a      = wae           */
+  { 0x116e1165, 0x116f }, /* jungseong u            + eo     = weo           */
+  { 0x116e1175, 0x1171 }, /* jungseong u            + i      = wi            */
+  { 0x116f1175, 0x1170 }, /* jungseong weo          + i      = we            */
+  { 0x11711165, 0x1170 }, /* jungseong wi           + eo     = we            */
+  { 0x11731175, 0x1174 }, /* jungseong eu           + i      = yi            */
+  { 0x11751161, 0x1162 }, /* jungseong i            + a      = ae            */
+  { 0x11751163, 0x1164 }, /* jungseong i            + ya     = yae           */
+  { 0x11751165, 0x1166 }, /* jungseong i            + eo     = e             */
+  { 0x11751167, 0x1168 }, /* jungseong i            + yeo    = ye            */
+  { 0x11751169, 0x116c }, /* jungseong i            + o      = oe            */
+  { 0x1175116e, 0x1171 }, /* jungseong i            + u      = wi            */
+  { 0x11751173, 0x1174 }, /* jungseong i            + eu     = yi            */
+  { 0x11a811af, 0x11b0 }, /* jongseong kiyeok       + rieul  = rieul-kiyeok  */
+  { 0x11a811ba, 0x11aa }, /* jongseong kiyeok       + sios   = kiyeok-sios   */
+  { 0x11a811bc, 0x11a9 }, /* jongseong kiyeok       + ieung  = ssangkiyeok   */
+  { 0x11a811c2, 0x11bf }, /* jongseong kiyeok       + hieuh  = khieukh       */
+  { 0x11ab11ba, 0x11bb }, /* jongseong nieun        + sios   = ssangsios     */
+  { 0x11ab11bd, 0x11ac }, /* jongseong nieun        + cieuc  = nieun-cieuc   */
+  { 0x11ab11c2, 0x11ad }, /* jongseong nieun        + hieuh  = nieun-hieuh   */
+  { 0x11ae11af, 0x11ce }, /* jongseong tikeut       + rieul  = rieul-tikeut  */
+  { 0x11ae11c2, 0x11c0 }, /* jongseong tikeut       + hieuh  = thieuth       */
+  { 0x11af11a8, 0x11b0 }, /* jongseong rieul        + kiyeok = rieul-kiyeok  */
+  { 0x11af11ae, 0x11ce }, /* jongseong rieul        + tikeut = rieul-tikeut  */
+  { 0x11af11b7, 0x11b1 }, /* jongseong rieul        + mieum  = rieul-mieum   */
+  { 0x11af11b8, 0x11b2 }, /* jongseong rieul        + pieup  = rieul-pieup   */
+  { 0x11af11ba, 0x11b3 }, /* jongseong rieul        + sios   = rieul-sios    */
+  { 0x11af11c2, 0x11b6 }, /* jongseong rieul        + hieuh  = rieul-hieuh   */
+  { 0x11b211c2, 0x11b5 }, /* jongseong rieul-pieup  + hieuh  = rieul-phieuph */
+  { 0x11b611ae, 0x11b4 }, /* jongseong rieul-hieuh  + tikeut = rieul-thieuth */
+  { 0x11b611b8, 0x11b5 }, /* jongseong rieul-hieuh  + pieup  = rieul-phieuph */
+  { 0x11b711af, 0x11b1 }, /* jongseong mieum        + rieul  = rieul-mieum   */
+  { 0x11b811af, 0x11b2 }, /* jongseong pieup        + rieul  = rieul-pieup   */
+  { 0x11b811ba, 0x11b9 }, /* jongseong pieup        + sios   = pieup-sios    */
+  { 0x11b811c2, 0x11c1 }, /* jongseong pieup        + hieuh  = phieuph       */
+  { 0x11ba11a8, 0x11aa }, /* jongseong sios         + kiyeok = kiyeok-sios   */
+  { 0x11ba11ab, 0x11bb }, /* jongseong sios         + nieun  = ssangsios     */
+  { 0x11ba11af, 0x11b3 }, /* jongseong sios         + rieul  = rieul-sios    */
+  { 0x11ba11b8, 0x11b9 }, /* jongseong sios         + pieup  = pieup-sios    */
+  { 0x11bc11a8, 0x11a9 }, /* jongseong ieung        + kiyeok = ssangkiyeok   */
+  { 0x11bd11ab, 0x11ac }, /* jongseong cieuc        + nieun  = nieun-cieuc   */
+  { 0x11bd11c2, 0x11be }, /* jongseong cieuc        + hieuh  = chieuch       */
+  { 0x11c011af, 0x11b4 }, /* jongseong thieuth      + rieul  = rieul-thieuth */
+  { 0x11c111af, 0x11b5 }, /* jongseong phieuph      + rieul  = rieul-phieuph */
+  { 0x11c211a8, 0x11bf }, /* jongseong hieuh        + kiyeok = khieukh       */
+  { 0x11c211ab, 0x11ad }, /* jongseong hieuh        + nieun  = nieun-hieuh   */
+  { 0x11c211ae, 0x11c0 }, /* jongseong hieuh        + tikeut = thieuth       */
+  { 0x11c211af, 0x11b6 }, /* jongseong hieuh        + rieul  = rieul-hieuh   */
+  { 0x11c211b8, 0x11c1 }, /* jongseong hieuh        + pieup  = phieuph       */
+  { 0x11c211bd, 0x11be }, /* jongseong hieuh        + cieuc  = chieuch       */
+  { 0x11ce11c2, 0x11b4 }, /* jongseong rieul-tikeut + hieuh  = rieul-thieuth */
 };
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 07382f5..1801eab
@@ -6,5 +6,5 @@ includedir=@includedir@/hangul-1.0
 Name: libhangul
 Description: Hangul hanja input support
 Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lhangul
+Libs: -L${libdir} -lhangul @LIBINTL@
 Cflags: -I${includedir}
index c6092e0428ff83066f0016d6fe84d8b4140f802f..867062891960b85478122b8a85e0f3b9b5e75cd8 100644 (file)
@@ -1,74 +1,86 @@
-Name:       libhangul
-Summary:    Hangul keyboard input library
-Version:    2.1.10
-Release:    2
-Group:      System Environment/Libraries
-License:    LGPL
-Source0:    %{name}-%{version}.tar.bz2
-Requires(post):  /sbin/ldconfig
-Requires(postun):  /sbin/ldconfig
-
-BuildRoot:  %{_tmppath}/%{name}-%{version}-build
+Name:           libhangul
+#%define libname libhangul
+#BuildRequires:  libtool pkg-config
+#BuildRequires:  python python-devel
+Version:        0.1.0
+Release:        1
+License:        LGPL-2.1+
+Group:          System/I18n/Korean
+AutoReqProv:    on
+Url:            http://kldp.net/projects/hangul/
+Source0:        %{name}-%{version}.tar.gz
+Summary:        Hangul input library used by scim-hangul and ibus-hangul
+BuildRequires:  gettext-tools
+#Requires(post): /sbin/ldconfig
+#Requires(postrun): /sbin/ldconfig
+
 
 %description
-This library implements Hangul keyboard input with various types of Korean keyboards.  It is intended to be a base library of Korean input methods on multiple platforms.
-This package contains the shared library and the runtime data.
+Hangul input library used by scim-hangul and ibus-hangul
+
 
-%package data
-Summary:    Hangul keyboard input library - data
-Group:      System Environment/Libraries
-Requires:   %{name} = %{version}-%{release}
+Authors:
+--------
+    Choe Hwanjin <choe.hwanjin@gmail.com>
+    Joon-cheol Park <jooncheol@gmail.com>
 
-%description data
-This package contains the architecture independent data.
+Hangul input library used by scim-hangul and ibus-hangul
 
 
 %package devel
-Summary:    Hangul keyboard input library - development files
-Group:      Development/Libraries
-Requires:   %{name} = %{version}-%{release}
+License:        GPL-2.0+
+Summary:        Include Files and Libraries mandatory for Development
+Group:          System/I18n/Korean
+Requires:       %{libname} = %{version} glibc-devel
 
 %description devel
-This package contains the header files and the static library.
+This package contains all necessary include files and libraries needed
+to develop applications that require these.
 
 
 %prep
-%setup -q -n %{name}-%{version}
-
+%setup -q
 
 %build
-%reconfigure --disable-static
-
-# Call make instruction with smp support
-make %{?jobs:-j%jobs}
-
+#autoreconf --force --install --verbose
+#export CFLAGS="$RPM_OPT_FLAGS"
+#export CXXFLAGS="$RPM_OPT_FLAGS"
+%autogen
+%configure --disable-static --with-pic
+%{__make} %{?jobs:-j%jobs}
+#pushd bindings/python
+#    make
+#popd
 
 %install
-rm -rf %{buildroot}
-%make_install
-
+make DESTDIR=${RPM_BUILD_ROOT} install
+#pushd bindings/python
+#    make DESTDIR=${RPM_BUILD_ROOT} install
+#popd
+%{__rm} -f %{buildroot}%{_libdir}/*.la
 
 %clean
 rm -rf %{buildroot}
 
+%post
+/sbin/ldconfig
 
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
+%postun
+/sbin/ldconfig
 
 %files
-%defattr(-,root,root,-)
-%{_libdir}/lib*.so*
-
-
-%files data
-%defattr(-,root,root,-)
-%{_datadir}/libhangul/*
-
+%defattr(-, root, root)
+%doc AUTHORS COPYING NEWS README ChangeLog
+%{_libdir}/lib*.so.*
+%dir %{_datadir}/libhangul/
+%dir %{_datadir}/libhangul/hanja/
+%{_datadir}/libhangul/hanja/hanja.txt
+%{_bindir}/hangul
+%{_datadir}/locale/ko/LC_MESSAGES/libhangul.mo
 
 %files devel
-%defattr(-,root,root,-)
-%{_includedir}/hangul-1.0/*.h
-%{_libdir}/pkgconfig/*.pc
-
+%defattr(-, root, root)
+%dir /usr/include/hangul-1.0/
+/usr/include/hangul-1.0/*
+%{_libdir}/lib*.so
+%{_libdir}/pkgconfig/libhangul.pc
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644 (file)
index 0000000..d031295
--- /dev/null
@@ -0,0 +1 @@
+ko
diff --git a/po/Makevars b/po/Makevars
new file mode 100644 (file)
index 0000000..f7ed7fa
--- /dev/null
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+# package.  (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.)  Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright.  The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+#   in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+#   understood.
+# - Strings which make invalid assumptions about notation of date, time or
+#   money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = http://kldp.net/projects/hangul
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used.  It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644 (file)
index 0000000..82fae4c
--- /dev/null
@@ -0,0 +1,5 @@
+# List of source files which contain translatable strings.
+
+hangul/hangulctype.c
+hangul/hangulinputcontext.c
+hangul/hanja.c
diff --git a/po/ko.po b/po/ko.po
new file mode 100644 (file)
index 0000000..bf80939
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,53 @@
+# libhangul korean translation
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the libhangul package.
+# Choe Hwanjin <choe.hwanjin@gmail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libhangul 0.0.12\n"
+"Report-Msgid-Bugs-To: http://kldp.net/projects/hangul\n"
+"POT-Creation-Date: 2011-08-29 23:30+0900\n"
+"PO-Revision-Date: 2010-11-14 21:34+0900\n"
+"Last-Translator: Choe Hwanjin <choe.hwanjin@gmail.com>\n"
+"Language-Team: Korean <ko@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hangul/hangulinputcontext.c:263
+msgid "Dubeolsik"
+msgstr "두벌식"
+
+#: hangul/hangulinputcontext.c:271
+msgid "Dubeolsik Yetgeul"
+msgstr "두벌식 옛글"
+
+#: hangul/hangulinputcontext.c:279
+msgid "Sebeolsik Dubeol Layout"
+msgstr "세벌식 두벌자판"
+
+#: hangul/hangulinputcontext.c:287
+msgid "Sebeolsik 390"
+msgstr "세벌식 390"
+
+#: hangul/hangulinputcontext.c:295
+msgid "Sebeolsik Final"
+msgstr "세벌식 최종"
+
+#: hangul/hangulinputcontext.c:303
+msgid "Sebeolsik Noshift"
+msgstr "세벌식 순아래"
+
+#: hangul/hangulinputcontext.c:311
+msgid "Sebeolsik Yetgeul"
+msgstr "세벌식 옛글"
+
+#: hangul/hangulinputcontext.c:319
+msgid "Romaja"
+msgstr "로마자"
+
+#: hangul/hangulinputcontext.c:327
+msgid "Ahnmatae"
+msgstr "안마태"
old mode 100755 (executable)
new mode 100644 (file)
index e53aa22..5889f49
@@ -3,14 +3,14 @@ noinst_PROGRAMS = hangul hanja
 
 hangul_CFLAGS =
 hangul_SOURCES = hangul.c
-hangul_LDADD = ../hangul/libhangul.la
+hangul_LDADD = ../hangul/libhangul.la $(LTLIBINTL) $(LTLIBICONV)
 
 hanja_CFLAGS =
 hanja_SOURCES = hanja.c
-hanja_LDADD = ../hangul/libhangul.la
+hanja_LDADD = ../hangul/libhangul.la $(LTLIBINTL)
 
 TESTS = test
 check_PROGRAMS = test
 test_SOURCES = test.c ../hangul/hangul.h
-test_CFLAGS = @CHECK_CFLAGS@
-test_LDADD = @CHECK_LIBS@ $(top_builddir)/hangul/libhangul.la
+test_CFLAGS = $(CHECK_CFLAGS)
+test_LDADD = $(CHECK_LIBS) $(top_builddir)/hangul/libhangul.la $(LTLIBINTL)
index 4023759ff336e0fa4b694dc8b694ae72093510d6..7f829a3924c1a19f53e4b9c5dd152acd2bdbaf3b 100644 (file)
 #define UCS4 "UCS-4LE"
 #endif
 
+#ifndef ICONV_CONST
+#define ICONV_CONST
+#endif
+
 void ucs4_to_utf8(char *buf, const ucschar *ucs4, size_t bufsize)
 {
     size_t n;
-    char*  inbuf;
+    ICONV_CONST char*  inbuf;
     size_t inbytesleft;
     char*  outbuf;
     size_t outbytesleft;
index 484a0c185ce21077a9778798939ec5337d318eaa..bb67fea9b326b4392e1bd88af0c7133e0b5a3e36 100644 (file)
+#include <stdarg.h>
 #include <stdlib.h>
+#include <wchar.h>
 #include <check.h>
 
 #include "../hangul/hangul.h"
 
 #define countof(x)  ((sizeof(x)) / (sizeof(x[0])))
 
+static bool
+check_preedit(const char* keyboard, const char* input, const wchar_t* output)
+{
+    HangulInputContext* ic;
+    const char* p;
+    const ucschar* preedit;
+    int res;
+
+    ic = hangul_ic_new(keyboard);
+
+    p = input;
+    while (*p != '\0') {
+       hangul_ic_process(ic, *p);
+       p++;
+    }
+
+    preedit = hangul_ic_get_preedit_string(ic);
+
+    res = wcscmp((const wchar_t*)preedit, output);
+
+    hangul_ic_delete(ic);
+
+    return res == 0;
+}
+
+static bool
+check_commit(const char* keyboard, const char* input, const wchar_t* output)
+{
+    HangulInputContext* ic;
+    const char* p;
+    const ucschar* commit;
+    int res;
+
+    ic = hangul_ic_new(keyboard);
+
+    p = input;
+    while (*p != '\0') {
+       hangul_ic_process(ic, *p);
+       p++;
+    }
+
+    commit = hangul_ic_get_commit_string(ic);
+
+    res = wcscmp((const wchar_t*)commit, output);
+
+    hangul_ic_delete(ic);
+
+    return res == 0;
+}
+
+START_TEST(test_hangul_ic_process_2)
+{
+    /* ㄱㅏㅉ */
+    fail_unless(check_commit("2", "rkW", L"가"));
+    fail_unless(check_preedit("2", "rkW", L"ㅉ"));
+    /* ㅂㅓㅅㅅㅡ */
+    fail_unless(check_commit("2", "qjttm", L"벗"));
+    fail_unless(check_preedit("2", "qjttm", L"스"));
+    /* ㅂㅓㅆㅡ */
+    fail_unless(check_commit("2", "qjTm", L"버"));
+    fail_unless(check_preedit("2", "qjTm", L"쓰"));
+    /* ㅁㅏㄹㄱㅗ */
+    fail_unless(check_preedit("2", "akfr", L"맑"));
+    fail_unless(check_commit("2", "akfrh", L"말"));
+    fail_unless(check_preedit("2", "akfrh", L"고"));
+}
+END_TEST
+
+START_TEST(test_hangul_ic_process_2y)
+{
+    /* ㅎ     */
+    fail_unless(check_preedit("2y", "g", L"ㅎ"));
+    /*   ㅗ   */
+    fail_unless(check_preedit("2y", "h", L"ㅗ"));
+    /*     ㅌ */
+    fail_unless(check_preedit("2y", "x", L"ㅌ"));
+    /* ㅂㅇ   */
+    fail_unless(check_preedit("2y", "qd", L"\x3178"));
+    /* ᄼ     */
+    fail_unless(check_preedit("2y", "Z", L"\x113c\x1160"));
+    /* ᅐ     */
+    fail_unless(check_preedit("2y", "V", L"\x1150\x1160"));
+    /* ᅝ     */
+    fail_unless(check_preedit("2y", "sg", L"\x115d\x1160"));
+
+    /* ㄱㅏㅇ */
+    fail_unless(check_preedit("2y", "rkd", L"강"));
+    /* ㄹㅐ   */
+    fail_unless(check_preedit("2y", "fo", L"래"));
+    /* ㅎ. ㄴ */
+    fail_unless(check_preedit("2y", "gKs", L"\x1112\x119e\x11ab"));
+    /* ㅂㅂㅇㅏㅁㅅㅅ */ 
+    fail_unless(check_preedit("2y", "qqdhatt", L"\x112c\x1169\x11de"));
+    /* ㅂㅂㅇㅏㅁㅅㅅㅛ */ 
+    fail_unless(check_commit("2y", "qqdhatty", L"\x112c\x1169\x11dd"));
+    fail_unless(check_preedit("2y", "qqdhatty", L"쇼"));
+    /* ㅂㅂㅇㅏㅁㅆㅛ */ 
+    fail_unless(check_commit("2y", "qqdhaTy", L"\x112c\x1169\x11b7"));
+    fail_unless(check_preedit("2y", "qqdhaTy", L"쑈"));
+    /* 옛이응 처리 */
+    /* ㅇㅇㅏㅇㅇㅏ */
+    fail_unless(check_commit("2y", "ddkdd", L"\x1147\x1161\x11bc"));
+    fail_unless(check_preedit("2y", "ddkdd", L"ㅇ"));
+    /* ㄱㅏㆁㆁ */
+    fail_unless(check_preedit("2y", "rkDD", L"\x1100\x1161\x11ee"));
+    /* ㄱㅏㆁㆁㅏ */
+    fail_unless(check_commit("2y", "rkDDk", L"\x1100\x1161\x11f0"));
+    fail_unless(check_preedit("2y", "rkDDk", L"\x114c\x1161"));
+    /* ㅏㅏㅏㅏ */
+    fail_unless(check_preedit("2y", "kkkk", L"\x115f\x11a2"));
+}
+END_TEST
+
+START_TEST(test_hangul_ic_process_3f)
+{
+    /* L V T  */
+    /* ㅎ     */
+    fail_unless(check_preedit("3f", "m", L"ㅎ"));
+    /*   ㅗ   */
+    fail_unless(check_preedit("3f", "v", L"ㅗ"));
+    /*     ㅌ */
+    fail_unless(check_preedit("3f", "W", L"ㅌ"));
+
+    /* ㄱㅏㅇ */
+    fail_unless(check_preedit("3f", "kfa", L"강"));
+    /* ㄹㅐ   */
+    fail_unless(check_preedit("3f", "yr", L"래"));
+    /* ㄴ  ㅁ */
+    fail_unless(check_preedit("3f", "hz", L"\x1102\x1160\x11b7"));
+    /*   ㅜㅅ */ 
+    fail_unless(check_preedit("3f", "tq", L"\x115f\x1165\x11ba"));
+}
+END_TEST
+
 START_TEST(test_hangul_ic_process_romaja)
 {
     HangulInputContext* ic;
@@ -21,7 +157,7 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xd55c); // 한
+    fail_unless(preedit[0] == L'한');
     fail_unless(commit[0] == 0);
 
     hangul_ic_reset(ic);
@@ -31,7 +167,7 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xc544); // 아
+    fail_unless(preedit[0] == L'아');
     fail_unless(commit[0] == 0);
 
     // remove correctly when automatically ㅇ was inserted
@@ -49,7 +185,7 @@ START_TEST(test_hangul_ic_process_romaja)
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
     fail_unless(preedit[0] == 0x314c); // ㅌ
-    fail_unless(commit[0] == 0xd2b8);  // 트
+    fail_unless(commit[0] == L'트');
 
     // ng makes trailing ㅇ
     hangul_ic_reset(ic);
@@ -60,7 +196,7 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xac15); // 강
+    fail_unless(preedit[0] == L'강'); // 강
     fail_unless(commit[0] == 0);
 
     // gangi makes 강이
@@ -68,8 +204,8 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xc774); // 이
-    fail_unless(commit[0] == 0xac15);  // 강
+    fail_unless(preedit[0] == L'이');
+    fail_unless(commit[0] == L'강');  // 강
 
     // nanG makes 난ㄱ
     // uppercase makes new syllable
@@ -81,7 +217,7 @@ START_TEST(test_hangul_ic_process_romaja)
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
     fail_unless(preedit[0] == 0x3131); // ㄱ
-    fail_unless(commit[0] == 0xb09c);  // 난
+    fail_unless(commit[0] == L'난');  // 난
 
     // special operation for x
     // x generate ㅈ for leading consonant
@@ -92,7 +228,7 @@ START_TEST(test_hangul_ic_process_romaja)
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
     fail_unless(preedit[0] == 0x3148); // 지
-    fail_unless(commit[0] == 0xc988);
+    fail_unless(commit[0] == L'즈');
 
     hangul_ic_reset(ic);
     hangul_ic_process(ic, 'x');
@@ -100,7 +236,7 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xc9c0); // 지
+    fail_unless(preedit[0] == L'지'); // 지
     fail_unless(commit[0] == 0x0);
 
     // x generate ㄱㅅ for trailing consonant
@@ -114,8 +250,8 @@ START_TEST(test_hangul_ic_process_romaja)
 
     preedit = hangul_ic_get_preedit_string(ic);
     commit = hangul_ic_get_commit_string(ic);
-    fail_unless(preedit[0] == 0xc2dc); // 시
-    fail_unless(commit[0] == 0xc139);  // 섹
+    fail_unless(preedit[0] == L'시'); // 시
+    fail_unless(commit[0] == L'섹');  // 섹
     
     hangul_ic_delete(ic);
 }
@@ -234,13 +370,42 @@ START_TEST(test_syllable_iterator)
 }
 END_TEST
 
+START_TEST(test_hangul_keyboard)
+{
+    const char* id;
+    const char* name;
+    unsigned int n;
+    unsigned int i;
+
+    n = hangul_ic_get_n_keyboards();
+    fail_unless(n != 0,
+               "error: there is no builtin hangul keyboard");
+
+    for (i = 0; i < n; ++i) {
+       id = hangul_ic_get_keyboard_id(i);
+       fail_unless(id != NULL,
+                   "error: keyboard id == NULL");
+    }
+
+    for (i = 0; i < n; ++i) {
+       name = hangul_ic_get_keyboard_name(i);
+       fail_unless(name != NULL,
+                   "error: keyboard id == NULL");
+    }
+}
+END_TEST
+
 Suite* libhangul_suite()
 {
     Suite* s = suite_create("libhangul");
 
     TCase* hangul = tcase_create("hangul");
+    tcase_add_test(hangul, test_hangul_ic_process_2);
+    tcase_add_test(hangul, test_hangul_ic_process_2y);
+    tcase_add_test(hangul, test_hangul_ic_process_3f);
     tcase_add_test(hangul, test_hangul_ic_process_romaja);
     tcase_add_test(hangul, test_syllable_iterator);
+    tcase_add_test(hangul, test_hangul_keyboard);
     suite_add_tcase(s, hangul);
 
     return s;
@@ -252,6 +417,7 @@ int main()
     Suite* s = libhangul_suite();
     SRunner* sr = srunner_create(s);
 
+    srunner_set_fork_status(sr, CK_NOFORK);
     srunner_run_all(sr, CK_NORMAL);
 
     number_failed = srunner_ntests_failed(sr);
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644 (file)
index 0000000..cf27653
--- /dev/null
@@ -0,0 +1,6 @@
+
+bin_PROGRAMS = hangul
+
+hangul_SOURCES = hangul.c
+hangul_CFLAGS = -DLOCALEDIR=\"$(localedir)\"
+hangul_LDADD = ../hangul/libhangul.la $(LTLIBINTL) $(LTLIBICONV)
diff --git a/tools/Makefile.in b/tools/Makefile.in
new file mode 100644 (file)
index 0000000..b21e929
--- /dev/null
@@ -0,0 +1,558 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = hangul$(EXEEXT)
+subdir = tools
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_hangul_OBJECTS = hangul-hangul.$(OBJEXT)
+hangul_OBJECTS = $(am_hangul_OBJECTS)
+am__DEPENDENCIES_1 =
+hangul_DEPENDENCIES = ../hangul/libhangul.la $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_1)
+hangul_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+       --mode=link $(CCLD) $(hangul_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+       $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+       $(LDFLAGS) -o $@
+SOURCES = $(hangul_SOURCES)
+DIST_SOURCES = $(hangul_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_CFLAGS = @CHECK_CFLAGS@
+CHECK_LIBS = @CHECK_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBHANGUL_AGE = @LIBHANGUL_AGE@
+LIBHANGUL_CURRENT = @LIBHANGUL_CURRENT@
+LIBHANGUL_REVISION = @LIBHANGUL_REVISION@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+hangul_SOURCES = hangul.c
+hangul_CFLAGS = -DLOCALEDIR=\"$(localedir)\"
+hangul_LDADD = ../hangul/libhangul.la $(LTLIBINTL) $(LTLIBICONV)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu tools/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p || test -f $$p1; \
+         then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+hangul$(EXEEXT): $(hangul_OBJECTS) $(hangul_DEPENDENCIES) 
+       @rm -f hangul$(EXEEXT)
+       $(hangul_LINK) $(hangul_OBJECTS) $(hangul_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hangul-hangul.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+
+hangul-hangul.o: hangul.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hangul_CFLAGS) $(CFLAGS) -MT hangul-hangul.o -MD -MP -MF $(DEPDIR)/hangul-hangul.Tpo -c -o hangul-hangul.o `test -f 'hangul.c' || echo '$(srcdir)/'`hangul.c
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/hangul-hangul.Tpo $(DEPDIR)/hangul-hangul.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='hangul.c' object='hangul-hangul.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hangul_CFLAGS) $(CFLAGS) -c -o hangul-hangul.o `test -f 'hangul.c' || echo '$(srcdir)/'`hangul.c
+
+hangul-hangul.obj: hangul.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hangul_CFLAGS) $(CFLAGS) -MT hangul-hangul.obj -MD -MP -MF $(DEPDIR)/hangul-hangul.Tpo -c -o hangul-hangul.obj `if test -f 'hangul.c'; then $(CYGPATH_W) 'hangul.c'; else $(CYGPATH_W) '$(srcdir)/hangul.c'; fi`
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/hangul-hangul.Tpo $(DEPDIR)/hangul-hangul.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='hangul.c' object='hangul-hangul.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hangul_CFLAGS) $(CFLAGS) -c -o hangul-hangul.obj `if test -f 'hangul.c'; then $(CYGPATH_W) 'hangul.c'; else $(CYGPATH_W) '$(srcdir)/hangul.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+       clean-generic clean-libtool ctags distclean distclean-compile \
+       distclean-generic distclean-libtool distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-binPROGRAMS install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags uninstall uninstall-am \
+       uninstall-binPROGRAMS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tools/hangul.c b/tools/hangul.c
new file mode 100644 (file)
index 0000000..bc6bba6
--- /dev/null
@@ -0,0 +1,416 @@
+/* libhangul
+ * Copyright (C) 2011 Choe Hwanjin
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <locale.h>
+#include <getopt.h>
+#include <errno.h>
+
+#ifdef HAVE_LANGINFO_H
+#include <langinfo.h>
+#endif
+
+#include <iconv.h>
+
+#include "../hangul/hangul.h"
+#include "../hangul/hangul-gettext.h"
+
+#ifdef WORDS_BIGENDIAN
+#define UCS4  "UCS-4BE"
+#else
+#define UCS4  "UCS-4LE"
+#endif
+
+#ifndef ICONV_CONST
+#define ICONV_CONST
+#endif
+
+static const char* program_name = "hangul";
+static iconv_t cd_ucs4_to_utf8 = (iconv_t)-1;
+
+static void
+print_error(int status, int errnum, const char* format, ...)
+{
+    va_list ap;
+
+    printf("%s: %s: ", program_name, strerror(errnum));
+
+    va_start(ap, format);
+    vprintf(format, ap);
+    va_end(ap);
+
+    fputc('\n', stdout);
+}
+
+static void
+usage(int status)
+{
+    if (status == EXIT_SUCCESS) {
+       printf(_("\
+Usage: %s [OPTION]... [FILE]...\n\
+"), program_name);
+
+       fputs(_("\
+Convert string into korean characters according to korean keyboard layout.\n\
+\n\
+Mandatory arguments to long options are mandatory for short options too.\n\
+  -k, --keyboard=KEYBOARDID   select keyboard layout by KEYBOARDID\n\
+  -l, --list                  list available keyboard and exit\n\
+  -i, --input=STRING          use STRING as input instead of standard input\n\
+  -o, --output=FILE           write result to FILE instead of standard output\n\
+  -s, --strict-order          do not allow wrong input sequence\n\
+"), stdout);
+
+       fputs(_("\
+      --help                  display this help and exit\n\
+      --version               output version information and exit\n\
+"), stdout);
+
+       fputs(_("\
+\n\
+With no FILE, or when FILE is -, read standard input.\n\
+"), stdout);
+
+         printf(_("\
+\n\
+Examples:\n\
+  %s -i gksrmfdlqfur  Convert specified string into korean characters\n\
+                          and print them to standard output.\n\
+  %s                  Convert standard input into korean characters\n\
+                          and print them to standard output.\n\
+"),
+              program_name, program_name);
+    } else {
+       fprintf(stderr, _("Try `%s --help' for more information.\n"),
+                program_name);
+    }
+
+    exit(status);
+}
+
+static void
+version()
+{
+    printf("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION);
+    exit(EXIT_SUCCESS);
+}
+
+static void
+list_keyboards()
+{
+    unsigned i;
+    unsigned n;
+
+    n = hangul_ic_get_n_keyboards();
+
+#if defined(ENABLE_NLS) && defined(HAVE_NL_LANGINFO)
+    if (n > 0) {
+       // hangul_ic_get_keyboard_name() 함수가 UTF-8 스트링으로 리턴하므로
+       // 여기서는 locale 인코딩으로 변환해야 한다.
+       // 그런데 iconv를 호출하여 변환하기가 번거로우므로
+       // bind_textdomain_codeset을 다시 호출하여 gettext가 리턴하는 스트링의
+       // 인코딩을 바꿔준다. 이렇게 하기 위해서는
+       // hangul_ic_get_keyboard_name()을 먼저 호출하여
+       // bind_textdomain_codeset() 함수가 불린후 다시 설정하도록 한다.
+       const char* codeset = nl_langinfo(CODESET);
+       if (codeset != NULL) {
+           hangul_ic_get_keyboard_name(0);
+           bind_textdomain_codeset(GETTEXT_PACKAGE, codeset);
+       }
+    }
+#endif
+
+    for (i = 0; i < n; ++i) {
+       const char* id;
+       const char* name;
+
+       id = hangul_ic_get_keyboard_id(i);
+       name = hangul_ic_get_keyboard_name(i);
+
+       printf("%-12s %s\n", id, name);
+    }
+
+    exit(EXIT_SUCCESS);
+}
+
+static bool
+on_hic_transition(HangulInputContext* ic,
+        ucschar c, const ucschar* preedit, void * data)
+{
+    if (hangul_is_choseong(c)) {
+       if (hangul_ic_has_jungseong(ic) || hangul_ic_has_jongseong(ic))
+           return false;
+    } else if (hangul_is_jungseong(c)) {
+       if (hangul_ic_has_jongseong(ic))
+           return false;
+    }
+
+    return true;
+}
+
+size_t ucschar_strlen(const ucschar* str)
+{
+    const ucschar* p = str;
+    while (p[0] != 0) {
+       p++;
+    }
+
+    return p - str;
+}
+
+static int
+fputs_ucschar(const ucschar* str, FILE* stream)
+{
+    char buf[512];
+    ICONV_CONST char* inbuf;
+    char* outbuf;
+    size_t inbytesleft;
+    size_t outbytesleft;
+    size_t len;
+    size_t res;
+
+    len = ucschar_strlen(str);
+
+    inbuf = (char*)str;
+    outbuf = buf;
+    inbytesleft = len * 4;
+    outbytesleft = sizeof(buf) - 1;
+
+    res = iconv(cd_ucs4_to_utf8, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+    if (res == -1) {
+       if (errno == E2BIG) {
+       } else if (errno == EILSEQ) {
+       } else if (errno == EINVAL) {
+       }
+    }
+    
+    *outbuf = '\0';
+
+    return fputs(buf, stream);
+}
+
+static void
+hangul_process_with_string(HangulInputContext* ic, const char* input, FILE* output)
+{
+    int r;
+    const ucschar* str;
+
+    while (*input != '\0') {
+       bool is_processed = hangul_ic_process(ic, *input);
+       str = hangul_ic_get_commit_string(ic);
+       if (str[0] != 0) {
+           r = fputs_ucschar(str, output);
+           if (r == EOF)
+               goto on_error;
+       }
+       if (!is_processed) {
+           r = fputc(*input, output);
+           if (r == EOF)
+               goto on_error;
+       }
+
+       input++;
+    }
+
+    str = hangul_ic_flush(ic);
+    if (str[0] != 0) {
+       r = fputs_ucschar(str, output);
+       if (r == EOF)
+           goto on_error;
+    }
+
+    r = fputs("\n", output);
+    if (r == EOF)
+       goto on_error;
+
+    return;
+
+on_error:
+    print_error(0, errno, _("standard output"));
+    exit(EXIT_FAILURE);
+}
+
+static void
+hangul_process(HangulInputContext* ic, FILE* input, FILE* output)
+{
+    int r;
+    int c;
+    const ucschar* str;
+
+    c = fgetc(input);
+    while (c != EOF) {
+       bool res = hangul_ic_process(ic, c);
+       str = hangul_ic_get_commit_string(ic);
+       if (str[0] != 0) {
+           r = fputs_ucschar(str, output);
+           if (r == EOF)
+               goto on_error;
+       }
+       if (!res) {
+           r = fputc(c, output);
+           if (r == EOF)
+               goto on_error;
+       }
+
+       c = fgetc(input);
+    }
+
+    str = hangul_ic_flush(ic);
+    if (str[0] != 0) {
+       r = fputs_ucschar(str, output);
+       if (r == EOF)
+           goto on_error;
+    }
+
+    return;
+
+on_error:
+    print_error(0, errno, _("standard output"));
+    exit(EXIT_FAILURE);
+}
+
+int
+main(int argc, char *argv[])
+{
+    int i;
+    int res;
+    const char* input_string;
+    const char* output_file;
+    const char* keyboard;
+    FILE* output;
+    HangulInputContext* ic;
+    bool strict_order = false;
+
+#ifdef ENABLE_NLS
+    bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
+#endif
+
+    setlocale(LC_ALL, "");
+
+    res = EXIT_SUCCESS;
+    keyboard = "2";
+    input_string = NULL;
+    output_file = "-";
+    while (1) {
+       int c;
+       static struct option const long_options[] = {
+           { "keyboard",    required_argument,  NULL, 'k' },
+           { "list",        no_argument,        NULL, 'l' },
+           { "input",       required_argument,  NULL, 'i' },
+           { "output",      required_argument,  NULL, 'o' },
+           { "strict-order",no_argument,        NULL, 's' },
+           { "help",        no_argument,        NULL, 'h' },
+           { "version",     no_argument,        NULL, 'v' },
+           { NULL,          0,                  NULL, 0   }
+       };
+
+       c = getopt_long(argc, argv, "k:li:o:s", long_options, NULL);
+       if (c == -1)
+           break;
+
+       switch (c) {
+       case 'k':
+           keyboard = optarg;
+           break;
+       case 'l':
+           list_keyboards();
+           break;
+       case 'i':
+           input_string = optarg;
+           break;
+       case 'o':
+           output_file = optarg;
+           break;
+       case 's':
+           strict_order = true;
+           break;
+       case 'h':
+           usage(EXIT_SUCCESS);
+           break;
+       case 'v':
+           version();
+           break;
+       default:
+           usage(EXIT_FAILURE);
+       }
+    }
+
+    if (strcmp(output_file, "-") == 0) {
+       output = stdout;
+    } else {
+       output = fopen(output_file, "w");
+       if (output == NULL) {
+           print_error(EXIT_FAILURE, errno, "%s", output_file);
+           exit(EXIT_FAILURE);
+       }
+    }
+
+    cd_ucs4_to_utf8 = iconv_open("UTF-8", UCS4);
+    if (cd_ucs4_to_utf8 == (iconv_t)-1) {
+       print_error(EXIT_FAILURE, errno, _("conversion from %s to UTF-8"), UCS4);
+       exit(EXIT_FAILURE);
+    }
+
+    ic = hangul_ic_new(keyboard);
+
+    if (strict_order) {
+       hangul_ic_connect_callback(ic, "transition", on_hic_transition, NULL);
+    }
+
+    if (input_string != NULL) {
+       hangul_process_with_string(ic, input_string, output);
+    }
+
+    if (optind < argc) {
+       for (i = optind; i < argc; i++) {
+           FILE* input = NULL;
+           if (strcmp(argv[i], "-") == 0) {
+               input = stdin;
+               hangul_process(ic, input, output);
+           } else {
+               input = fopen(argv[i], "r");
+               if (input == NULL) {
+                   print_error(0, errno, "%s", argv[i]);
+               } else {
+                   hangul_process(ic, input, output);
+                   fclose(input);
+               }
+           }
+       }
+    } else if (input_string == NULL) {
+       hangul_process(ic, stdin, output);
+    }
+
+    hangul_ic_delete(ic);
+
+    iconv_close(cd_ucs4_to_utf8);
+
+    if (strcmp(output_file, "-") != 0) {
+       fclose(output);
+    }
+
+    return res;
+}