Unified Hangul Code (UHC),[2][lower-alpha 1] or Extended Wansung,[4][lower-alpha 2] also known under Microsoft Windows as Code Page 949 (Windows-949, MS949 or ambiguously CP949), is the Microsoft Windows code page for the Korean language. It is an extension of Wansung Code (KS C 5601:1987, encoded as EUC-KR) to include all 11172 non-partial Hangul syllables present in Johab (KS C 5601:1992 annex 3).[4][2] This corresponds to the pre-composed syllables available in Unicode 2.0 and later.
Quick Facts Alias(es), Language(s) ...
Unified Hangul CodeLayout of the Unified Hangul Code |
Alias(es) | - Windows Code Page 949
- IBM Code Page 1363
|
---|
Language(s) | Korean |
---|
Standard | WHATWG Encoding Standard (as "EUC-KR")[1] |
---|
Classification | |
---|
Extends | EUC-KR |
---|
Other related encoding(s) | |
---|
Not in the strictest sense of the term, as ASCII bytes can appear as trail bytes, although this is limited to letter bytes.
|
|
Close
Wansung Code has the drawback that it only assigns codes for the 2350 precomposed Hangul syllables which have their own KS X 1001 (KS C 5601) codepoints (out of 11172 in total, not counting those using obsolete jamo), and requires others to use eight-byte composition sequences, which are not supported by some partial implementations of the standard.[5] UHC resolves this by assigning single codes for all possible syllables constructed using modern jamo, by making assignments outside of the encoding space used for KS X 1001.
The lead byte range is extended to 0x81–FE, and the trail byte range is extended to 0x41–5A, 0x61–7A and 0x81–FE (in EUC-KR, both ranges are 0xA1–FE). The codes outside the EUC-KR ranges are used for the additional hangul.[6] If considered separately, both the EUC-KR Hangul block and the UHC extended Hangul section are in Unicode order.[1]
Unified Hangul Code is not registered with IANA as a standard to communicate information over the Internet.[7] Alternatives include UTF-8. However, the W3C/WHATWG Encoding Standard used by HTML5 incorporates the Unified Hangul Code extensions into its definition of "EUC-KR".[1]
Microsoft assigns Windows-949 the label "ks_c_5601-1987",[8][9] which properly applies to KS X 1001 itself (KS C 5601 being the original name of KS X 1001).[10] The WHATWG treat the label "ks_c_5601-1987" interchangeably with "EUC-KR" with the intent of being "compatible with deployed content".[11] The Unicode Consortium's "OBSOLETE/EASTASIA" collection of withdrawn mappings included mappings for Unified Hangul Code as "KSC5601.TXT", with the automatically derived mappings for 7-bit KS X 1001 being included as "KSX1001.TXT".[12]
IBM's code page 949 is another, otherwise unrelated, extension of EUC-KR. International Components for Unicode (ICU) uses "cp949", "949" or "ibm-949" to refer to that IBM code page,[13] and "ms949" or "windows-949" (or several variants of "ks_c_5601-1987") to refer to the Windows mapping of UHC.[14] Python, by contrast, recognises "cp949", "949", "ms949" and "uhc" as labels for UHC, and does not include an IBM-949 codec.[15] Out of the labels incorporating the code page number, the WHATWG recognise only "windows-949".[11]
IBM's code page for Unified Hangul Code is called Code page 1363 (IBM-1363), or "Korean MS-Win". It is a combination of SBCS Code page 1126 and DBCS Code page 1362.[16][17][18][19][20] It differs in having a single byte mapping of 0x5C to the Won sign (U+20A9);[21][22][23] Windows maps 0x5C to U+005C (the Unicode code point for the backslash) as in ASCII,[14] although fonts often still render it as a Won sign.[24] Unicode mapping of the wave dash (0xA1AD) also differs, with the IBM mapping favouring U+301C,[25] while the Microsoft mapping favours U+223C (Tilde Operator).[26] The IBM mapping for UHC is available as "ibm-1363" in ICU,[21] whereas the ICU "windows-949" codec is referred to as IBM-1261 in some ICU source code comments.[27]