Hangul Syllables is a Unicode block containing precomposed Hangul syllabic blocks for modern Korean. The order of the characters in this Unicode block follows the Hangul alphabetical order of South Korea.

Algorithm for canonical decomposition mappings and character names

The canonical decomposition mappings and the character names of all characters in this Unicode block are algorithmically defined.

The following step gives the index number of the initial consonant, of the vowel, and of the final consonant for a given Hangul syllabic block.

  1. Let S = (code point of a character from U+AC00 to U+D7A3, in decimal) − 44032
  2. The index number of its initial consonant is S / 588 vowel is (S% 588) / 28 final consonant is S% 28

(x / y is the integer quotient of x divided by y; x% y is the remainder of x / y, also known as the modulo operator)

After getting the index numbers, use the following table to get the canonical decomposition mapping and the character name.

  • For the canonical decomposition mapping, simply concatenate the Hangul jamo (element) characters in the "Decomposition" columns below, in the order "initial consonant, vowel, final consonant". The result should match the regular expression [ᄀ-ᄒ][ᅡ-ᅵ][ᆨ-ᇂ]? (one character from U+1100 to U+1112, and then one character from U+1161 to U+1175, and then optionally one character from U+11A8 to U+11C2).
  • For the character name, write "HANGUL SYLLABLE " (with the trailing space) first and then concatenate the strings in the "Name" columns below, in the order "initial consonant, vowel, final consonant".
Index numberInitial consonantVowelFinal consonant
DecompositionNameDecompositionNameDecompositionName
0U+1100GU+1161A(null)
1U+1101GGU+1162AEU+11A8G
2U+1102NU+1163YAU+11A9GG
3U+1103DU+1164YAEU+11AAGS
4U+1104DDU+1165EOU+11ABN
5U+1105RU+1166EU+11ACNJ
6U+1106MU+1167YEOU+11ADNH
7U+1107BU+1168YEU+11AED
8U+1108BBU+1169OU+11AFL
9U+1109SU+116AWAU+11B0LG
10U+110ASSU+116BWAEU+11B1LM
11U+110B(null)U+116COEU+11B2LB
12U+110CJU+116DYOU+11B3LS
13U+110DJJU+116EUU+11B4LT
14U+110ECU+116FWEOU+11B5LP
15U+110FKU+1170WEU+11B6LH
16U+1110TU+1171WIU+11B7M
17U+1111PU+1172YUU+11B8B
18U+1112HU+1173EUU+11B9BS
19U+1174YIU+11BAS
20U+1175IU+11BBSS
21U+11BCNG
22U+11BDJ
23U+11BEC
24U+11BFK
25U+11C0T
26U+11C1P
27U+11C2H

Example

Hangul syllabic block: 쇒 (U+C1D2, decimal 49618)

  1. S = 49618 − 44032 = 5586
  2. The index number of its initial consonant is 5586 / 588 = 9 vowel is (5586% 588) / 28 = 10 final consonant is 5586% 28 = 14

Therefore, its

  • canonical decomposition mapping is ᄉ+ᅫ+ᆵ (U+1109, U+116B, U+11B5)
  • character name is "HANGUL SYLLABLE SWAELP"

Block

Hangul Syllables[1][2] (PDF)
0123456789ABCDEF
U+AC0x
U+AC1x
U+AC2x
U+AC3x갿
U+AC4x
U+AC5x
U+AC6x
U+AC7x걿
U+AC8x
U+AC9x
U+ACAx
U+ACBx겿
U+ACCx
U+ACDx
U+ACEx
U+ACFx곿
U+AD0x
U+AD1x
U+AD2x
U+AD3x괿
U+AD4x
U+AD5x
U+AD6x
U+AD7x굿
U+AD8x
U+AD9x
U+ADAx
U+ADBx궿
U+ADCx
U+ADDx
U+ADEx
U+ADFx귿
U+AE0x
U+AE1x
U+AE2x
U+AE3x긿
U+AE4x
U+AE5x
U+AE6x
U+AE7x깿
U+AE8x
U+AE9x
U+AEAx
U+AEBx꺿
U+AECx
U+AEDx
U+AEEx
U+AEFx껿
U+AF0x
U+AF1x
U+AF2x
U+AF3x꼿
U+AF4x
U+AF5x
U+AF6x
U+AF7x꽿
U+AF8x
U+AF9x
U+AFAx
U+AFBx꾿
U+AFCx
U+AFDx
U+AFEx
U+AFFx꿿
U+B00x뀀
U+B01x
U+B02x
U+B03x
U+B04x
U+B05x
U+B06x
U+B07x
U+B08x
U+B09x
U+B0Ax
U+B0Bx
U+B0Cx
U+B0Dx
U+B0Ex
U+B0Fx
U+B10x
U+B11x
U+B12x
U+B13x
U+B14x
U+B15x
U+B16x
U+B17x
U+B18x
U+B19x
U+B1Ax
U+B1Bx
U+B1Cx
U+B1Dx
U+B1Ex
U+B1Fx
U+B20x
U+B21x
U+B22x
U+B23x
U+B24x
U+B25x
U+B26x
U+B27x
U+B28x
U+B29x
U+B2Ax
U+B2Bx
U+B2Cx
U+B2Dx
U+B2Ex
U+B2Fx
U+B30x
U+B31x
U+B32x
U+B33x
U+B34x
U+B35x
U+B36x
U+B37x
U+B38x
U+B39x
U+B3Ax
U+B3Bx
U+B3Cx
U+B3Dx
U+B3Ex
U+B3Fx
U+B40x
U+B41x
U+B42x
U+B43x
U+B44x
U+B45x
U+B46x
U+B47x
U+B48x
U+B49x
U+B4Ax
U+B4Bx
U+B4Cx
U+B4Dx
U+B4Ex
U+B4Fx
U+B50x
U+B51x
U+B52x
U+B53x
U+B54x
U+B55x
U+B56x
U+B57x
U+B58x
U+B59x
U+B5Ax
U+B5Bx
U+B5Cx
U+B5Dx
U+B5Ex
U+B5Fx
U+B60x
U+B61x
U+B62x
U+B63x
U+B64x
U+B65x
U+B66x
U+B67x
U+B68x
U+B69x
U+B6Ax
U+B6Bx
U+B6Cx
U+B6Dx
U+B6Ex
U+B6Fx
U+B70x
U+B71x
U+B72x
U+B73x
U+B74x
U+B75x
U+B76x
U+B77x
U+B78x
U+B79x
U+B7Ax
U+B7Bx
U+B7Cx
U+B7Dx
U+B7Ex
U+B7Fx
U+B80x
U+B81x
U+B82x
U+B83x
U+B84x
U+B85x
U+B86x
U+B87x
U+B88x
U+B89x
U+B8Ax
U+B8Bx
U+B8Cx
U+B8Dx
U+B8Ex
U+B8Fx
U+B90x
U+B91x
U+B92x
U+B93x뤿
U+B94x
U+B95x
U+B96x
U+B97x륿
U+B98x
U+B99x
U+B9Ax
U+B9Bx릿
U+B9Cx
U+B9Dx
U+B9Ex
U+B9Fx맿
U+BA0x
U+BA1x
U+BA2x
U+BA3x먿
U+BA4x
U+BA5x
U+BA6x
U+BA7x멿
U+BA8x
U+BA9x
U+BAAx
U+BABx몿
U+BACx
U+BADx
U+BAEx
U+BAFx뫿
U+BB0x
U+BB1x
U+BB2x
U+BB3x묿
U+BB4x
U+BB5x
U+BB6x
U+BB7x뭿
U+BB8x
U+BB9x
U+BBAx
U+BBBx뮿
U+BBCx
U+BBDx
U+BBEx
U+BBFx믿
U+BC0x
U+BC1x
U+BC2x
U+BC3x밿
U+BC4x
U+BC5x
U+BC6x
U+BC7x뱿
U+BC8x
U+BC9x
U+BCAx
U+BCBx벿
U+BCCx
U+BCDx
U+BCEx
U+BCFx볿
U+BD0x
U+BD1x
U+BD2x
U+BD3x봿
U+BD4x
U+BD5x
U+BD6x
U+BD7x뵿
U+BD8x
U+BD9x
U+BDAx
U+BDBx붿
U+BDCx
U+BDDx
U+BDEx
U+BDFx뷿
U+BE0x
U+BE1x
U+BE2x
U+BE3x븿
U+BE4x
U+BE5x
U+BE6x
U+BE7x빿
U+BE8x
U+BE9x
U+BEAx
U+BEBx뺿
U+BECx
U+BEDx
U+BEEx
U+BEFx뻿
U+BF0x
U+BF1x
U+BF2x
U+BF3x뼿
U+BF4x
U+BF5x
U+BF6x
U+BF7x뽿
U+BF8x
U+BF9x
U+BFAx
U+BFBx뾿
U+BFCx
U+BFDx
U+BFEx
U+BFFx뿿
U+C00x쀀
U+C01x
U+C02x
U+C03x
U+C04x
U+C05x
U+C06x
U+C07x
U+C08x
U+C09x
U+C0Ax
U+C0Bx
U+C0Cx
U+C0Dx
U+C0Ex
U+C0Fx
U+C10x
U+C11x
U+C12x
U+C13x
U+C14x
U+C15x
U+C16x
U+C17x
U+C18x
U+C19x
U+C1Ax
U+C1Bx
U+C1Cx
U+C1Dx
U+C1Ex
U+C1Fx
U+C20x
U+C21x
U+C22x
U+C23x
U+C24x
U+C25x
U+C26x
U+C27x
U+C28x
U+C29x
U+C2Ax
U+C2Bx
U+C2Cx
U+C2Dx
U+C2Ex
U+C2Fx
U+C30x
U+C31x
U+C32x
U+C33x
U+C34x
U+C35x
U+C36x
U+C37x
U+C38x
U+C39x
U+C3Ax
U+C3Bx
U+C3Cx
U+C3Dx
U+C3Ex
U+C3Fx
U+C40x
U+C41x
U+C42x
U+C43x
U+C44x
U+C45x
U+C46x
U+C47x
U+C48x
U+C49x
U+C4Ax
U+C4Bx
U+C4Cx
U+C4Dx
U+C4Ex
U+C4Fx
U+C50x
U+C51x
U+C52x
U+C53x
U+C54x
U+C55x
U+C56x
U+C57x
U+C58x
U+C59x
U+C5Ax
U+C5Bx
U+C5Cx
U+C5Dx
U+C5Ex
U+C5Fx
U+C60x
U+C61x
U+C62x
U+C63x
U+C64x
U+C65x
U+C66x
U+C67x
U+C68x
U+C69x
U+C6Ax
U+C6Bx
U+C6Cx
U+C6Dx
U+C6Ex
U+C6Fx
U+C70x
U+C71x
U+C72x
U+C73x
U+C74x
U+C75x
U+C76x
U+C77x
U+C78x
U+C79x
U+C7Ax
U+C7Bx
U+C7Cx
U+C7Dx
U+C7Ex
U+C7Fx
U+C80x
U+C81x
U+C82x
U+C83x
U+C84x
U+C85x
U+C86x
U+C87x
U+C88x
U+C89x
U+C8Ax
U+C8Bx
U+C8Cx
U+C8Dx
U+C8Ex
U+C8Fx
U+C90x
U+C91x
U+C92x
U+C93x줿
U+C94x
U+C95x
U+C96x
U+C97x쥿
U+C98x
U+C99x
U+C9Ax
U+C9Bx즿
U+C9Cx
U+C9Dx
U+C9Ex
U+C9Fx짿
U+CA0x
U+CA1x
U+CA2x
U+CA3x쨿
U+CA4x
U+CA5x
U+CA6x
U+CA7x쩿
U+CA8x
U+CA9x
U+CAAx
U+CABx쪿
U+CACx
U+CADx
U+CAEx
U+CAFx쫿
U+CB0x
U+CB1x
U+CB2x
U+CB3x쬿
U+CB4x
U+CB5x
U+CB6x
U+CB7x쭿
U+CB8x
U+CB9x
U+CBAx
U+CBBx쮿
U+CBCx
U+CBDx
U+CBEx
U+CBFx쯿
U+CC0x
U+CC1x
U+CC2x
U+CC3x찿
U+CC4x
U+CC5x
U+CC6x
U+CC7x챿
U+CC8x
U+CC9x
U+CCAx
U+CCBx첿
U+CCCx
U+CCDx
U+CCEx
U+CCFx쳿
U+CD0x
U+CD1x
U+CD2x
U+CD3x촿
U+CD4x
U+CD5x
U+CD6x
U+CD7x쵿
U+CD8x
U+CD9x
U+CDAx
U+CDBx춿
U+CDCx
U+CDDx
U+CDEx
U+CDFx췿
U+CE0x
U+CE1x
U+CE2x
U+CE3x츿
U+CE4x
U+CE5x
U+CE6x
U+CE7x칿
U+CE8x
U+CE9x
U+CEAx
U+CEBx캿
U+CECx
U+CEDx
U+CEEx
U+CEFx컿
U+CF0x
U+CF1x
U+CF2x
U+CF3x켿
U+CF4x
U+CF5x
U+CF6x
U+CF7x콿
U+CF8x
U+CF9x
U+CFAx
U+CFBx쾿
U+CFCx
U+CFDx
U+CFEx
U+CFFx쿿
U+D00x퀀
U+D01x
U+D02x
U+D03x
U+D04x
U+D05x
U+D06x
U+D07x
U+D08x
U+D09x
U+D0Ax
U+D0Bx
U+D0Cx
U+D0Dx
U+D0Ex
U+D0Fx
U+D10x
U+D11x
U+D12x
U+D13x
U+D14x
U+D15x
U+D16x
U+D17x
U+D18x
U+D19x
U+D1Ax
U+D1Bx
U+D1Cx
U+D1Dx
U+D1Ex
U+D1Fx
U+D20x
U+D21x
U+D22x
U+D23x
U+D24x
U+D25x
U+D26x
U+D27x
U+D28x
U+D29x
U+D2Ax
U+D2Bx
U+D2Cx
U+D2Dx
U+D2Ex
U+D2Fx
U+D30x
U+D31x
U+D32x
U+D33x
U+D34x
U+D35x
U+D36x
U+D37x
U+D38x
U+D39x
U+D3Ax
U+D3Bx
U+D3Cx
U+D3Dx
U+D3Ex
U+D3Fx
U+D40x
U+D41x
U+D42x
U+D43x
U+D44x
U+D45x
U+D46x
U+D47x
U+D48x
U+D49x
U+D4Ax
U+D4Bx
U+D4Cx
U+D4Dx
U+D4Ex
U+D4Fx
U+D50x
U+D51x
U+D52x
U+D53x
U+D54x
U+D55x
U+D56x
U+D57x
U+D58x
U+D59x
U+D5Ax
U+D5Bx
U+D5Cx
U+D5Dx
U+D5Ex
U+D5Fx
U+D60x
U+D61x
U+D62x
U+D63x
U+D64x
U+D65x
U+D66x
U+D67x
U+D68x
U+D69x
U+D6Ax
U+D6Bx
U+D6Cx
U+D6Dx
U+D6Ex
U+D6Fx
U+D70x
U+D71x
U+D72x
U+D73x
U+D74x
U+D75x
U+D76x
U+D77x
U+D78x
U+D79x
U+D7Ax
Notes 1.^As of Unicode version 17.0 2. Blue background: Characters in KS X 1001 (i.e. EUC-KR–safe characters) 3. Yellow background: Characters not in KS X 1001, but are in at least one of the character sets KS X 1002, KPS 9566, and GB 12052. See also List of modern Hangul characters in ISO/IEC 2022–compliant national character set standards 4.^Grey areas indicate non-assigned code points

History

Encoding Hangul syllabic blocks in Unicode was complicated by a reorganization of the code points:

  • Unicode version 1.0.0 encoded 2,350 modern Korean Hangul syllabic blocks from KS C 5601-1987 at U+3400–U+3D2D. This range is now part of CJK Unified Ideographs Extension A.
  • Version 1.1 added 1,930 additional modern syllabic blocks from KS C 5657-1991 at U+3D2E–U+44B7, six modern syllabic blocks from GB 12052-89 at U+44B8–U+44BD, and the first 2,370 syllabic blocks that are not in the aforementioned three sets at U+44BE–U+4DFF. These collectively cover the remainder of what is now CJK Unified Ideographs Extension A and all of what is now Yijing Hexagram Symbols. In addition, there were three errors in Unicode 1.1: U+384E: 삤 in the Unicode Character Database, but 삣 in the Unicode 1.0 and ISO/IEC 10646-1:1993 code charts and per the source standard mappings U+40BC: 삣 in the Unicode Character Database, but 삤 in the ISO/IEC 10646-1:1993 code charts and per the source standard mappings U+436C: 콫 in the Unicode Character Database, but 콪 in the ISO/IEC 10646-1:1993 code charts and per the source standard mappings
  • Version 2.0 added the 4,516 remaining possible syllabic blocks from KS C 5601-1992 and rearranged all of the encoded syllabic blocks into the current U+AC00–U+D7AF range which allows algorithmic decomposition into individual jamo.

RFC explains that this significant incompatible change was made on the assumption that no data or software using Unicode for Korean existed:

"The official justification for allowing such an incompatible change was that no implementations and no data containing Hangul existed, a statement that is likely to be true but remains unprovable. The incident has been dubbed the "Korean mess", and the relevant committees have pledged to never, ever again make such an incompatible change." — RFC

Subsequently, Unicode adopted an encoding stability policy which states that "Once a character is encoded, it will not be moved or removed".

After all this, North Korea submitted a proposal to rearrange the characters to follow its own alphabetical order; it was rejected.

The following Unicode-related documents record the purpose and process of defining specific characters in the Hangul Syllables block:

VersionFinal code pointsCountUTCIDL2IDWG2IDDocument
2.0U+AC00..D7A311,172Ksar, Mike (1991-11-25), Unconfirmed minutes WG2-Paris meeting of October 1991
X3L2/93-078N848Modified Korean Position, 1992-07-02
"Discussion on Korean Hangul Proposal", Unicode Technical Committee Meeting #62: Discussion of Korean Hangul Proposal, 1994-09-30
X3L2/95-031N1158Korean National Position for adding Hangul characters, 1995-03-08
N1170Canadian Position on Korean Proposal in N 1158 for adding Hangul characters, 1995-03-10
Aliprand, Joan (1995-03-10), Closed Caucus Minutes, UTC #64
N1198Working Draft for a pDAM to 10646 on Korean Hangul, 1995-04-05
X3L2/95-053.1N1199Background on Korean Coding, 1995-04-30
Umamaheswaran, V. S.; Ksar, Mike (1995-05-03), "6.4.1", Unconfirmed minutes of SC2/WG2 Meeting 27, Geneva
X3L2/95-053N1209PDAM no. 5 to ISO/IEC 10646-1: Hangul Character Collections, 1995-05-09
"Discussion on Korean", Unicode Technical Committee Meeting #65, Minutes, 1995-06-02
X3L2/95-090, )Umamaheswaran, V. S.; Ksar, Mike (1995-09-09), "6.3", Unconfirmed Minutes of WG 2 Meeting # 28 in Helsinki, Finland; 1995-06-26--27
N1285Hangul Syllable Character Name Generation Algorithm, 1995-11-08
, )Umamaheswaran, V. S.; Ksar, Mike (1996-01-26), "7. Disposition of comments on pDAM-5 - Korean Hangul", Minutes of Meeting 29, Tokyo
N1331Paterson, Bruce (1996-03-14), DAM 5 (Korean Hangul) Submittal to JTC1
N1332Paterson, Bruce (1996-03-14), BMP Revised Layout (DAM 5 diagram attachment)
N1391Paterson, Bruce (1996-05-18), Hangul syllable name algorithm, simplified
Umamaheswaran, V. S.; Ksar, Mike (1996-06-25), "6.1", Draft minutes of WG2 Copenhagen Meeting # 30
N1537Table of Replies and Feedback on Amendment 5 – Hangul, 1997-01-29
L2/97-125N1561Paterson, Bruce (1997-05-27), Draft Report on JTC1 letter ballot on DAM No. 5 to ISO/IEC 10646-1 (Hangul)
N1570Paterson, Bruce (1997-06-23), Almost Final Text (pages 2-5 and 182 only) of DAM 5 – Hangul
L2/97-288Umamaheswaran, V. S. (1997-10-24), "5.3.1", Unconfirmed Meeting Minutes, WG 2 Meeting # 33, Heraklion, Crete, Greece, 20 June – 4 July 1997
, )Kim, Kyongsok; Paterson, Bruce (1998-07-08), Defect Report on AMD 5 - Hangul Syllables with Editor's response
Paterson, Bruce (1998-12-08), Hangul syllable name rules, proposed for ISO/IEC 10646 2nd Edition
, , )Umamaheswaran, V. S. (1998-12-30), "11.1", Minutes of WG 2 meeting 35, London, U.K.; 1998-09-21--25
Paterson, Bruce (1999-03-31), Draft Technical Technical Corrigendum No. 3 to ISO/IEC 10646-1: 1993
Umamaheswaran, V. S. (1999-08-03), "7.1.2 Hangul syllable name rules", Minutes of WG 2 meeting 36, Fukuoka, Japan, 1999-03-09--15
Disposition of Comments Report on SC 2 N 3306, Draft Technical Corrigendum No. 3 to ISO/IEC 10646-1: 1993, 1999-09-20
Paterson, Bruce (1999-09-21), Final Text for Technical Corrigendum No. 3 to ISO/IEC 10646-1: 1993
Edberg, Peter (2002-11-05), Hangul Mapping Errors
Kim, Kyongsok (2002-11-30), 3-way cross-reference tables - KS X 1001, KPS 9566, and UCS
West, Andrew (2004-10-21), Unicode 1 Hangul Mapping Errors
Moore, Lisa (2004-11-23), "Properties - Unicode 1 Hangul Mapping Errors", UTC #101 Minutes
Chung, Jaemin (2017-03-29), Informative document about three pre-Unicode-2.0 modern hangul syllables

See also