Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Unified Hangul Code
Windows character encoding for Korean

Unified Hangul Code (UHC), or Extended Wansung, 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). This corresponds to the pre-composed syllables available in Unicode 2.0 and later.

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. 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. If considered separately, both the EUC-KR Hangul block and the UHC extended Hangul section are in Unicode order.

Related Image Collections Add Image
We don't have any YouTube videos related to Unified Hangul Code yet.
We don't have any PDF documents related to Unified Hangul Code yet.
We don't have any Books related to Unified Hangul Code yet.
We don't have any archived web articles related to Unified Hangul Code yet.

Terminology

Unified Hangul Code is not registered with IANA as a standard to communicate information over the Internet.10 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".11

Microsoft assigns Windows-949 the label "ks_c_5601-1987",1213 which properly applies to KS X 1001 itself (KS C 5601 being the original name of KS X 1001).14 The WHATWG treat the label "ks_c_5601-1987" interchangeably with "EUC-KR" with the intent of being "compatible with deployed content".15 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".16

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,17 and "ms949" or "windows-949" (or several variants of "ks_c_5601-1987") to refer to the Windows mapping of UHC.18 Python, by contrast, recognises "cp949", "949", "ms949" and "uhc" as labels for UHC, and does not include an IBM-949 codec.19 Out of the labels incorporating the code page number, the WHATWG recognise only "windows-949".20

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.2122232425 It differs in having a single byte mapping of 0x5C to the Won sign (U+20A9);262728 Windows maps 0x5C to U+005C (the Unicode code point for the backslash) as in ASCII,29 although fonts often still render it as a Won sign.30 Unicode mapping of the wave dash (0xA1AD) also differs, with the IBM mapping favouring U+301C,31 while the Microsoft mapping favours U+223C (Tilde Operator).32 The IBM mapping for UHC is available as "ibm-1363" in ICU,33 whereas the ICU "windows-949" codec is referred to as IBM-1261 in some ICU source code comments.34

Single byte codes

Following is the single-byte portion of the code page as defined by IBM. Similarly to Code page 437, the control code bytes may be used as control codes or graphical codes depending on context—the graphical codes are shown below. Microsoft uses ASCII mappings for all ASCII bytes, although the backslash may still be rendered as a won sign.

Code page 112635363738
0123456789ABCDEF
0xNUL
1x
2x SP !"#$%&'()*+,-./
3x0123456789:;<=>?
4x@ABCDEFGHIJKLMNO
5xPQRSTUVWXYZ[]^_
6x`abcdefghijklmno
7xpqrstuvwxyz{|}~
  Differences from code page 437

Footnotes

References

  1. "INFO: Hangul (Korean) Character Sets", Microsoft Support, Microsoft https://support.microsoft.com/en-gb/help/170557/info-hangul-korean-character-sets

  2. Korean: 통합형 한글 코드[3]; RR: Tonghabhyeong Hangeul Kodeu /wiki/Korean_language

  3. Zsigri, Gyula (2002-06-18). "KSC and UHC". http://zsigri.tripod.com/fontboard/cjk/ksc.html

  4. Korean: 확장 완성형; RR: Hwagjang Wanseonghyeong /wiki/Korean_language

  5. Zsigri, Gyula (2002-06-18). "KSC and UHC". http://zsigri.tripod.com/fontboard/cjk/ksc.html

  6. "INFO: Hangul (Korean) Character Sets", Microsoft Support, Microsoft https://support.microsoft.com/en-gb/help/170557/info-hangul-korean-character-sets

  7. Shin, Jungshik. "What are KS X 1001(KS C 5601) and other Hangul codes?". Hangul & Internet in Korea FAQ. http://stason.org/TULARC/languages/korean/8-What-are-KS-X-1001-KS-C-5601-and-other-Hangul-codes.html

  8. Lunde, Ken (13 January 2009). "Appendix F: Vendor encoding Methods" (PDF). CJKV Information Processing (2nd ed.). O'Reilly Media. ISBN 978-0-596-51447-1. 978-0-596-51447-1

  9. van Kesteren, Anne, "5. Indexes (§ index EUC-KR)", Encoding Standard, WHATWG /wiki/Anne_van_Kesteren

  10. "Character Sets". Iana.org. Retrieved 2017-01-11. https://www.iana.org/assignments/character-sets

  11. van Kesteren, Anne, "5. Indexes (§ index EUC-KR)", Encoding Standard, WHATWG /wiki/Anne_van_Kesteren

  12. "Encoding.WindowsCodePage Property - .NET Framework (current version)". MSDN. Microsoft. https://msdn.microsoft.com/en-us/library/system.text.encoding.windowscodepage(v=vs.110).aspx

  13. "Code Page Identifiers", Windows Dev Center, Microsoft, 7 January 2021 https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers

  14. IBM; Unicode Consortium. "convrtrs.txt". International Components for Unicode. v. 59180.0.1. [...] using KS C 5601 or related names to denote EUC-KR or windows-949 is very much misleading [...] It's just the name of a 94 x 94 Korean coded character set standard which can be invoked on either GL (with MSB reset) or GR (with MSB set). /wiki/IBM

  15. van Kesteren, Anne. "4.2. Names and labels". Encoding Standard. WHATWG. /wiki/Anne_van_Kesteren

  16. Jungshik Shin. "KSX1001.TXT: KS X 1001 to Unicode table". Unicode, Inc. https://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSX1001.TXT

  17. "ibm-949_P110-1999 (alias cp949)", Converter Explorer, International Components for Unicode https://ssl.icu-project.org/icu-bin/convexp?conv=cp949

  18. "windows-949-2000", Converter Explorer, International Components for Unicode http://demo.icu-project.org/icu-bin/convexp?conv=windows-949-2000

  19. "codecs — Codec registry and base classes § Standard Encodings". Python 3.7.2 documentation. Python Software Foundation. https://docs.python.org/3.7/library/codecs.html#standard-encodings

  20. van Kesteren, Anne. "4.2. Names and labels". Encoding Standard. WHATWG. /wiki/Anne_van_Kesteren

  21. "Coded character set identifiers - CCSID 1363", IBM Globalization, IBM, archived from the original on 2014-11-29 https://web.archive.org/web/20141129210404/http://www-01.ibm.com/software/globalization/ccsid/ccsid1363.html

  22. "Code page 1126 information document". Archived from the original on 2017-01-16. https://web.archive.org/web/20170116144609/https://www-01.ibm.com/software/globalization/cp/cp01126.html

  23. "CCSID 1126 information document". Archived from the original on 2016-03-27. https://web.archive.org/web/20160327100212/http://www-01.ibm.com/software/globalization/ccsid/ccsid1126.html

  24. "Code page 1362 information document". Archived from the original on 2016-03-17. https://web.archive.org/web/20160317081150/http://www-01.ibm.com/software/globalization/cp/cp01362.html

  25. "CCSID 1362 information document". Archived from the original on 2016-03-27. https://web.archive.org/web/20160327040022/http://www-01.ibm.com/software/globalization/ccsid/ccsid1362.html

  26. "ibm-1363", Converter Explorer, International Components for Unicode http://demo.icu-project.org/icu-bin/convexp?conv=ibm-1363

  27. Code Page CPGID 01126 (pdf) (PDF), IBM https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01126.pdf

  28. Code Page CPGID 01126 (txt), IBM https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01126.txt

  29. "windows-949-2000", Converter Explorer, International Components for Unicode http://demo.icu-project.org/icu-bin/convexp?conv=windows-949-2000

  30. Kaplan, Michael S. (2005-09-17), "When is a backslash not a backslash?", Sorting it all out http://archives.miloush.net/michkap/archive/2005/09/17/469941.html

  31. "ibm-1363_P110-1997 (lead byte A1)". ICU Demonstration - Converter Explorer. International Components for Unicode. https://ssl.icu-project.org/icu-bin/convexp?conv=ibm-1363_P110-1997&b=A1&s=ALL#layout

  32. "windows-949-2000 (lead byte A1)". ICU Demonstration - Converter Explorer. International Components for Unicode. https://ssl.icu-project.org/icu-bin/convexp?conv=windows-949-2000&b=A1&s=ALL#layout

  33. "ibm-1363", Converter Explorer, International Components for Unicode http://demo.icu-project.org/icu-bin/convexp?conv=ibm-1363

  34. See, for reference, ucnv_lmb.cpp (Brendan Murray, Jim Snyder-Grant), where the lead byte 0x11 is commented as referring to "Korean: ibm-1261" after the definition of ULMBCS_GRP_KO, but it is mapped to the "windows-949" ICU codec in the OptGroupByteToCPName array later in the file. https://opensource.apple.com/source/ICU/ICU-59180.0.1/icuSources/common/ucnv_lmb.cpp.auto.html

  35. Code Page CPGID 01126 (pdf) (PDF), IBM https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01126.pdf

  36. Code Page CPGID 01126 (txt), IBM https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01126.txt

  37. ICU Demonstration mapping IBM-1363 to Unicode https://icu4c-demos.unicode.org/icu-bin/convexp?conv=ibm-1363_P110-1997&s=ALL&s=ALL

  38. ICU Demonstration mapping IBM-1363C (ASCII based variant) to Unicode https://icu4c-demos.unicode.org/icu-bin/convexp?conv=ibm-1363_P11B-1998&s=ALL