KPS 9566 explained

KPS 9566
Nomimecode:1-->
Alias:ISO-IR-202 (1997 version)
Standard:KPS 9566
Lang: Partial support:
Status:Used only in North Korea.
Otherrelated:Other ISO 2022 Chosŏn'gŭl DBCSes: Other ISO 2022 CJK DBCSes:

KPS 9566 ("DPRK Standard Korean Graphic Character Set for Information Interchange") is a North Korean standard specifying a character encoding for the Chosŏn'gŭl (Hangul) writing system used for the Korean language. The edition of 1997 specified an ISO 2022-compliant 94×94 two-byte coded character set. Subsequent editions have added additional encoded characters outside of the 94×94 plane, in a manner comparable to UHC or GBK.

KPS 9566 differs in approach from KS X 1001, its South Korean counterpart, in using a different ordering of Chosŏn'gŭl, in encoding explicit vertical presentation forms of punctuation, in not encoding duplicate Hanja for multiple readings, and in including several characters specific to the North Korean political system, including special encodings for the names of the country's past and present leaders (Kim Il Sung, Kim Jong Il and Kim Jong Un).[1]

Although KPS 9566 was the original source of several characters added to Unicode, not all KPS 9566 characters have Unicode equivalents. Those which do not are mapped to similar Unicode characters or to the Private Use Area.

Background and other standards

The ASCII character set originated in the United States in 1963, and was revised in 1967 to the form it has today.[2] ASCII also became accepted as an international standard in 1967, becoming ECMA-6,[2] designated ISO/IEC 646 by the International Organization for Standardization.[3] It is presently designated ANSI X3.4-1986 and ISO 646:1991. ASCII was a 7-bit, single-byte encoding including 94 graphical characters, the space, and 33 control codes, which provided basic support for representing American English text as a series of bytes.[2] [4]

The next edition of ISO 646, published in 1972, revised the standard to introduce the concept of national versions of the code, allowing countries to replace a few less commonly used codes with their own required characters. At the same time, work on defining extension mechanisms for ASCII was underway, with the intention of being applicable to both 7-bit and 8-bit environments. This was completed in 1973 and published as JIS X 0202, ECMA-35 and ISO 2022. ISO 2022 specifies mechanisms for using single-byte and multiple-byte character sets with a certain structure in both 7-bit and 8-bit environments, and for declaring and switching between them in a standard fashion using shift codes and escape sequences.[5]

Countries in East Asia, due to using large repertoires of Chinese characters, introduced standardised double-byte encodings (DBCS) for their writing systems, since the number of characters representable in a single-byte code was not sufficient. In an ISO 2022 compliant DBCS, every character can be represented with two ASCII printing character bytes; the location of a character can be referenced by these byte values, or by two numbers from 1 to 94 (a kuten), equal to the respective bytes minus 32.[6] The first registered ISO 2022 compliant DBCS, and the first East Asian DBCS to be established as a national standard, was the first edition of JIS X 0208 (Japan), published in 1978.[7] This was followed by GB 2312 (Mainland China) in 1980, and by Wansung code (South Korea; first designated KS C 5601-1987) in 1987. Big5 (Taiwan), defined in 1984, did not follow the ISO 2022 structure.[8] When used in an 8-bit (rather than 7-bit) environment, GB 2312 and Wansung code were usually used with the eighth bit set, with ASCII or a similar SBCS used with the eighth bit unset; these encoding schemes are known as EUC-CN and EUC-KR, respectively.[9]

Although the Korean writing system includes individual symbols (jamo) for consonants and vowels, serving as an alphabet, Korean text is properly typeset with these symbols composed into blocks for each syllable. Wansung code included individual Korean syllable blocks separately, treating them as a large set of characters similarly to Hanja, and was first defined by the third edition of the South Korean standard KS C 5601. The first edition had defined an encoding of individual jamo which allowed syllable blocks to be encoded as sequences, which was named N-byte Hangul, and had not been adopted as widely as intended.

Wansung code did not encode all possible modern Korean syllables, only a selection of the 2350 most common, although it allowed them to be specified using combining sequences, which often were not supported.[10] An alternative encoding, also South Korean, named Johab did, and served as a competitor to Wansung for some time. Unified Hangul Code (UHC), introduced by Microsoft with Windows 95, extended EUC-KR, allowing the use of invalid EUC double-byte codes to represent all other syllables available in Johab.[10] A similar approach was taken by the Mainland Chinese GBK encoding, extending GB 2312 with support for Traditional Chinese and for less common Chinese characters by encoding them to double-byte codes invalid in EUC-CN.

South Korea was not the only country developing an ISO 2022 DBCS for Korean: the Mainland Chinese GB 12052 was published in 1989. This was not closely related to Wansung code, although it also included composed syllables. Instead, it corresponded to GB 2312 with Korean syllables (and 94 Hanja) replacing the Chinese characters, except for the inclusion of a dollar sign in place of a yuan sign. It was developed for use by the Korean minority in north-eastern China.

Likewise, North Korea developed KPS 9566. Although North Korea and South Korea both use Korean Chosŏn'gŭl (Hangul) as their primary writing system, they use different lexicographical orders. Hence, character ordering differs between Wansung code and KPS 9566.

KPS 9566 has undergone several revisions, including editions of 1997 and 2003, mainly to enhance compatibility with Unicode. These are commonly indicated by specifying the year (e.g. KPS 9566-97, 9566-2003). The current edition as of the release of Red Star OS 3.0 appears to be KPS 9566-2011, which adds Kim Jong Un to the list of leaders. The publicly available code chart for the 1997 edition of KPS 9566 shows a ISO 2022 94×94 plane. The more recent editions, from what sources of information are available outside of North Korea itself, appear to define additional allocations outside of the EUC plane (similarly to GBK or UHC).

Due to the interoperability issues arising from the use of multiple national standard and platform- or font-specific proprietary character encodings, the Unicode standard was developed with the intent of allowing all representable text to be interchanged in a single, universal format. The first edition of Unicode was published in 1991 and 1992,[11] and ISO/IEC 10646 was established in sync with Unicode in 1993.[12] Unicode formats are preferred for international use on the World Wide Web, where legacy character encodings are treated as partial encodings of Unicode by means of mapping files.[13]

Design

In principle, KPS 9566 is similar to the Wansung character set defined by the South Korean KS X 1001 standard, although the two are not compatible. Both encode a section of punctuation, symbols, jamo, kana and alphabetical characters, followed by a subset of the possible modern Chosŏn'gŭl syllables, followed by a section of Hanja. However, KPS 9566 uses a different ordering of jamo and syllables to conform with North Korean lexicographical ordering standards. KPS 9566 also includes 28 explicitly rotated punctuation characters for vertical typography, which KS X 1001 does not, and encodes each Hanja only once, whereas KS X 1001 encodes several Hanja with multiple readings multiple times.[14]

KPS 9566-97 encodes a total of 2679 Chosŏn'gŭl syllables and 4653 Hanja. This provides better coverage than the 2350 syllables encoded by Wansung code: for instance, the 똠 character used in the name of Korean: [[:ko:똠방각하|똠방각하]], a noted Korean literary work, does not have an assigned Wansung codepoint, but has one (38-02) in KPS 9566. The Hanja section includes 4652 characters from the Unified Repertoire and Ordering and one from CJK Unified Ideographs Extension A. The entirety of row 15, the latter half of row 44 (after the syllables block) and the latter half of row 94 (after the Hanja block) may be used for user-defined purposes.

KPS 9566 is especially distinguished by its inclusion of several special characters from North Korean political life. Specifically, it includes the hammer, sickle and brush emblem of the Workers' Party of Korea, both uncircled and circled (code points 12-01 and 12-02), and two groups of three special-purpose characters which spell out the names of the North Korean leaders Kim Il Sung (Korean: 김일성) and Kim Jong Il (Korean: 김정일) in a special decorative font (code points 04-72 to 04-74 and 04-75 to 04-77, respectively).[15] The syllables for Kim and Il, which are identical in the spelling of both names, are encoded twice. KPS 9566-2011 additionally includes the name of Kim Jong Un (Korean: 김정은) as code points 04-78 to 04-80.[1]

Due to these special characters, there is currently no full round-trip compatibility between KPS 9566 and Unicode, unless unsupported characters are mapped to the Private Use Area.

KPS 10721

North Korea also developed a second character set, KPS 10721 "Code of the supplementary Korean Hanja Set for Information Interchange", which was published in 2000. KPS 10721 encodes a set of at least 19469 Hanja[14] additional to those included in KPS 9566., these did not all have mappings to Unicode, but included 10358 from the Unified Repertoire and Ordering, 3187 from CJK Unified Ideographs Extension A and 107 from CJK Compatibility Ideographs (all in the Basic Multilingual Plane), as well as 5767 from CJK Unified Ideographs Extension B and 50 from CJK Compatibility Ideographs Supplement (in the Supplementary Ideographic Plane).[14] All KPS 9566 Hanja are also included in KPS 10721, which uses a different encoding structure, unrelated to ISO 2022.

Besides the mapping of these Hanja (excluding those also in KPS 9566) to Unicode, little was known about the KPS 10721 standard outside of North Korea[14] [1] prior to 2022. North Korean reference glyphs were provided for only a subset of these Hanja in the Unicode code charts, due to a lack of suitable font data available to the Unicode Consortium.[16] [17] Unicode Hanja characters with KPS 9566 or KPS 10721 sources are nonetheless cross-referenced to their KPS codes in the Unihan database with the key kIRG_KPSource; the Unihan source codes use "KP0" to refer to KPS 9566 and "KP1" for KPS 10721.[18]

In 2022, a Hanja font was isolated from the North Korean Okpyon Android app, which was used to correct some errors in the KPS-10721-to-Unicode mapping data and to supply new North Korean reference glyphs for the Unicode code charts; while doing so, the mappings of KPS 9566 Hanja to KPS 10721 were also deduced.[17] [19] The existing reference glyphs were updated in Unicode 15 in September 2022,[20] while the Unicode Consortium's CJK and Unihan Group recommended in November 2022 that the Unicode Technical Committee include the additional reference glyphs in the next version of Unicode,[21] to be included in Unicode 15.1 in September 2023.[22]

Documentation and relationship to Unicode

Unicode's initial coverage of Korean syllables, added in version 1.0, was based on Wansung code. In Unicode version 2.0, a new block of Korean syllables (the present Hangul Syllables block) was added, based on the syllable repertoire available in Johab, and the previous block was deleted (it is now occupied by CJK Unified Ideographs Extension A). This was done under the assumption that no Unicode-encoded Korean data existed yet, but became known as the "Korean mess", and the responsible committees pledged not to make such an incompatible change in the future,[23] a pledge codified by the Unicode Stability Policy.[24]

The code chart for KPS 9566-97, published April 1997, was submitted to the ISO International Register of Coded Character Sets for registration for use with ISO/IEC 2022. It was registered in June 1998 with the number ISO-IR-202. This code chart is publicly available from the Information Processing Society of Japan.[25]

In August 1999, the North Korean national body submitted a document to WG2 (ISO/IEC JTC 1/SC 2 Working Group 2), the ISO body responsible for ISO/IEC 10646, the international standard corresponding to Unicode. This document requested the addition of the KPS 9566 codes to the existing cross-references from the CJK Unified Ideographs charts, the addition of 80 symbol characters from KPS 9566 which did not have existing Unicode mappings, a resolution to the difference in collation order between KPS 9566 and Unicode (due to the order of the characters in Unicode following the South Korean encodings) and the addition of 8 combining jamo. It also requested for WG2 to edit the existing Unicode character and block names to use the term "Korean character" rather than "Hangul".[26] An expanded version of this proposal, broken into several documents, was submitted as a work item in December 1999.[27]

A detailed response was submitted by the Swedish representative in March 2000, opposing several of the points and elaborating on Sweden's vote against the proposal. This response stated that changing the encoding of the Korean characters again would cause major disruption, even more so than the first time, which was done when comparatively few implementations existed, but which in retrospect should not have been done. It explained that that few or no languages can be collated correctly by code point value, and that a tailoring for the Unicode Collation Algorithm or ISO/IEC 14651 (then being drafted) should be used for that purpose, and that normative names of characters already assigned cannot be changed, due to the stability policy, although non-normative translations to other languages can be employed. It suggested that a machine-readable mapping file between Unicode and KPS 9566 could be provided by the North Korean body itself, and would be more useful than a printed cross-reference in the standard document. Regarding the proposed additional characters, the response stated that characters which would have compatibility decompositions in Unicode should not be added and that logos, including those of political parties, and special characters for names of particular people should not be added.[28]

In July 2000, the North Korean body wrote to WG2, accusing them of developing both versions of the Unicode encoding for Korean on the basis of South Korean proposals only, without consulting North Korea, accusing them putting the commercial interests of companies and fears of international confusion over respect to North Korea's sovereignty, and stating that North Korea would regard further refusal to change the name and order of the Korean characters in Unicode as an insult to their sovereign dignity and as compromising the ISO's claims to impartiality. They re-iterated their demand for WG2 and Unicode to "correct" the order of the Korean characters, and to "correct" the names "Hangul Jamo" and "Hangul Syllable" to "Korean Alphabet" and "Korean Syllable".[29]

In August 2000, the North Korean national body submitted a more detailed version of their requests in a series of five consecutive proposals. These requested the addition of 14 additional jamo characters,[30] the addition of 82 symbol characters,[31] and the use of the term "Korean alphabet" instead of "Hangul",[32] provided supporting evidence for the North Korean collation order,[33] and requested addition of the North Korean Hanja repertoire.[34] These proposals were discussed in two meetings between North Korean, South Korean, Swedish and other WG2 representatives in September 2000, in which the North Korean body was asked to provide manuscript evidence for the additional jamo characters, to resubmit their symbols proposal with symbols which had already been accepted into Unicode removed, and to consider using ISO/IEC 14651, then at final draft stage, for collation purposes.[35]

In September 2001, the North Korean national body submitted a revised series of proposals requesting the addition of several KPS 9566 and KPS 10721 characters, including 70 symbol characters, to Unicode. In this version of the proposal, a section of document excerpts demonstrating use of several characters and short explanations of their purpose was included. The Workers' Party of Korea symbol was named the "Hammer and Sickle and Brush", renamed from "Mark of the Workers' Party of Korea" in earlier versions of the proposal, and justified as being used as an identifying symbol on maps. As justification for the proposed characters for leaders' names, they explained that the leaders' names often appear with a different size and font weight in North Korean publications for the purpose of emphasis. A follow-up by South Korean WG2 representatives requested evidence, names in Korean and justifications for adding certain of these characters, and noted that non-emphasised versions of the characters for the leaders' names already existed. A meeting of North and South Korean representatives from WG2 was convened in October 2001, which recommended 47 of the symbol characters for adding to Unicode, and suggested that the leaders' names and WPK symbols be raised for further discussion by WG2.

A subsequent feedback document from February 2002 regarding the North Korean proposed additions requested that the "tea" symbol for a tea house be accepted as a more general "hot beverage" symbol, equating it with symbols used in guidebooks to denote hot or non-alcoholic beverages. It also recommended that the reference glyph for the existing codepoint for an umbrella without rain be modified to harmonise with the proposed reference glyph for the umbrella with rain, equating them to the "keep dry" symbols used on packaging, and raised the question of which lightning bolt and high voltage warning symbols in existing symbol collections could be unified with the proposed "high voltage" character.[36] All three of these characters were accepted into Unicode in version 4.0. It also recommended that the horizontal-barred fractions and the left-up pointing scissors be encoded using a variation selector, since the scissors did not accompany a differently-oriented pair of scissors, and since the existing Unicode fraction codepoints unified the skewed and horizontal forms.[36]

In November 2002, the South Korean body published a set of three-way tables mapping characters between the KPS 9566, KS X 1001 (as EUC-KR) and ISO/IEC 10646 standards as they existed in 2000. These tables had been prepared without input from North Korea.[37]

Notes and References

  1. Web site: Four of a Kind: KS X 1001 & KPS 9566 . Lunde . Ken . Ken Lunde . CJK Type Blog . . 2019-03-25.
  2. Web site: An annotated history of some character codes or ASCII: American Standard Code for Information Infiltration . Thomas Daniel . Jennings . Thomas Daniel Jennings . Sensitive research (SR-IX) . 2020-03-17 . 1999 . 2020-03-17 . live . https://web.archive.org/web/20160522024759/http://worldpowersystems.com/J/codes/#FIELDATA . 2016-05-22.
  3. Web site: Standard ECMA-6: 7-bit Coded Character Set . Ecma International.
  4. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 89 .

  5. Book: ECMA-35:1994 . Character Code Structure and Extension Techniques . 6th . 1994 . ECMA . Ecma International .
  6. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 19-20, 581-582 .

  7. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 84–85 .

  8. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 94–147 .

  9. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 242–255 .

  10. Web site: What are KS X 1001(KS C 5601) and other Hangul codes? . Hangul & Internet in Korea FAQ . Shin . Jungshik.
  11. Web site: History of Unicode Release and Publication Dates . Unicode Consortium . Unicode Consortium.
  12. Web site: Unicode and ISO/IEC 10646 . 2007-06-05 . 2019-06-17 . West . Andrew . Andrew West (linguist).
  13. Web site: XML Japanese Profile . 14 April 2000 . W3C Notes . . Murata . Makoto.
  14. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . 148–151 .

  15. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 1999 . . . 1-56592-224-7 . 116 .

  16. Web site: Q: Why are DPRK (North Korean

    kIRG_KPSource) glyphs missing from some CJK code charts?

    . https://web.archive.org/web/20221004002836/https://www.unicode.org/faq/han_cjk.html#22 . 2022-10-04 . unfit . FAQ - Chinese and Japanese . . Richard . Cook.
  17. Web site: Proposal to consider adding CodeCharts support for kIRG_KPSource representative glyphs in Unicode . UTC L2/22-238 . Yi . Bai . CheonHyeong . Sim . 2022-10-16.
  18. Web site: Unicode Han Database (Unihan) . kIRG_KPSource . Unicode Standard Annex #38 . 2020-03-05 . John H. . Jenkins . Richard . Cook . Ken . Lunde . Ken Lunde.
  19. Web site: KPS 10721:2000 (Unicode KP1源) 文件重构 (修订版) . zh-Hans . 2022-06-19 . CheonHyeong . Sim .
  20. For example: Web site: CJK Compatibility Ideographs (§ DPRK compatibility ideographs . Unicode 15.0 Versioned Charts (delta charts) . . 2022.
  21. Web site: 35) L2/22-238: Proposal to consider adding CodeCharts support for kIRG_KPSource representative glyphs . CJK & Unihan Group Recommendations for UTC #173 Meeting . UTC L2/22-247 . Lunde . Ken . Ken Lunde . 2022-11-01.
  22. Web site: US/Unicode Activity Report for IRG #60 . Lunde . Ken . Ken Lunde . 2023-02-07 . UTC L2/23-058, ISO/IEC JTC1/SC2/WG2/IRG N2599.
  23. 2279 . UTF-8, a transformation format of ISO 10646 . F. . Yergeau . 1998 . RFC 2279 . . 10.17487/rfc2279. free .
  24. Web site: Unicode Character Encoding Stability Policies . Unicode Consortium . 2017-06-23 .
  25. 202 . 1998-06-22 . DPRK Standard Korean Graphic Character Set for Information Interchange . Committee for Standardization of D. P. R. of Korea.
  26. Web site: Amendment of the part containing the Korean characters in ISO/IEC 10646-1:1998 amendment 5 . 1999-08-10 . ISO/IEC JTC 1/SC 2/WG 2 N2056 . Jo . Chun-Hui.
  27. Web site: New Work item proposal (NP) for an amendment of the Korean part of ISO/IEC 10646-1:1993 . 1999-12-07 . L2/99-380, ISO/IEC JTC 1 N5999.
  28. Web site: Comments on DPRK New Work Item proposal on Korean characters . Kent . Karlsson . 2000-03-02 . ISO/IEC JTC 1/SC 2/WG 2 N2167.
  29. Web site: DPRK letter on character names and ordering in 10646-1: 2000 . 2000-07-05 . Cho . Chun-Hui . ISO/IEC JTC 1/SC 2/WG 2 N2231.
  30. Web site: Proposal for the addition of 14 Korean alphabets to ISO/IEC 10646-1 . Committee for Standardization of the D P R of Korea (CSK) . ISO/IEC JTC 1/SC 2/WG 2 N2243 . 2000-08-10.
  31. Web site: Proposal for the addition of 82 symbols to ISO/IEC 10646-1 . Committee for Standardization of the D P R of Korea (CSK) . ISO/IEC JTC 1/SC 2/WG 2 N2244 . 2000-08-10.
  32. Web site: Proposal to change the existing name of Korean characters in ISO/IEC 10646-1 . Committee for Standardization of the D P R of Korea (CSK) . ISO/IEC JTC 1/SC 2/WG 2 N2245 . 2000-08-10.
  33. Web site: Evidence for arrangement of Korean characters proposed by CSK . Committee for Standardization of the D P R of Korea (CSK) . ISO/IEC JTC 1/SC 2/WG 2 N2246 . 2000-08-10.
  34. Web site: Proposal to add the Hanja column of D. P. R. of Korea in ISO/IEC 10646-1 (14938 ideographs to CJK Unified Ideographs and 3181 ideographs to its Extention [sic] A) . Committee for Standardization of the D P R of Korea (CSK) . ISO/IEC JTC 1/SC 2/WG 2 N2247 . 2000-08-10.
  35. Web site: Report of the meeting of the Korean script ad hoc group. 2000-09-21 . Korean script ad hoc group . ISO/IEC JTC 1/SC 2/WG 2 N2282 .
  36. Web site: Notes on proposed Symbols from DPRK. Asmus . Freytag . 2002-02-13 . ISO/IEC JTC 1/SC 2/WG 2 N2417, UTC L2/02-102 .
  37. Web site: Chung . Jaemin . Information on the most recent version of KPS 9566 (KPS 9566-2011?) . UTC L2/18-011 . 2018-01-05.
  38. Web site: Re: Scripts in Unicode 4.0. Doug . Ewell . Ewellic alphabet . 2002-08-15 . Unicode Mail List Archive .
  39. Web site: Miscellaneous Symbols and Arrows . Unicode 4.0.0 Delta Code Charts . Unicode Consortium.
  40. Web site: Unicode 4.0 Emoji . Emojipedia . Emojipedia . Emojipedia.
  41. Web site: Miscellaneous Symbols . Unicode 4.0.0 Delta Code Charts . Unicode Consortium.
  42. Web site: Unicode 4.0 beta characters . William . Overington . 2003-02-24.
  43. Web site: Emoji Symbols: Background Data—Background data for Proposal for Encoding Emoji Symbols . UTC L2/10-132 . Markus . Scherer . Mark . Davis . Kat . Momoi . Darick . Tong . Yasuo . Kida . Peter . Edberg.
  44. Web site: Japanese TV Symbols . Michel . Suignard . 2007-09-18 . UTC L2/07-391, ISO/IEC JTC 1/SC 2/WG 2 N3341.
  45. Web site: Emoji Versions & Sources, v13.0 . 2020 . Unicode Consortium . Unicode Consortium.
  46. Web site: Unicode 5.2 Emoji List . Emojipedia . Emojipedia . Emojipedia.
  47. Web site: Waving White Flag Emoji . Emojipedia . Emojipedia . Emojipedia.
  48. Web site: Waving Black Flag Emoji . Emojipedia . Emojipedia . Emojipedia.
  49. Web site: The Cyrillic Charset Soup . 2016-12-03 . Roman . Czyborra . 1998-05-25 . 1998-11-30 . live . https://web.archive.org/web/20161203230933/http://czyborra.com/charsets/cyrillic.html . 2016-12-03.
  50. Character set 0x23/0xA3 (row number 3, digits and Roman)

    This set includes a subset of ASCII, minus punctuation and symbols, comprising western Arabic numerals and both cases of the Basic Latin alphabet. Compare row 3 of JIS X 0208, which this row exactly matches. Compare and contrast row 3 of KS X 1001 and GB 2312, which include their entire national variants of ISO 646 in this row, rather than only the alphanumeric subset.

    The characters in this row are shown below mapped to Basic Latin codepoints (consistent with articles on the other character sets), but is mapped to the Halfwidth and Fullwidth Forms block when used in an encoding which combines KPS 9566 with ASCII.

    Character set 0x24/0xA4 (row number 4, Chosŏn'gŭl jamo and leaders' names)

    This set contains Chosŏn'gŭl jamo, as well as special encodings for the names of (as of 2003) the North Korean Leaders Kim Il Sung and Kim Jong Il. The name of Kim Jong Un is also included as of the 2011 edition. Compare with row 4 of KS X 1001.

    The jamo in this row which exist in the Unicode Hangul Compatibility Jamo block (which contains the position-independent characters mapped from KS X 1001) are mapped to that block. The obsolete jamo distinguishing palatalised sibilants map to the position-specific characters in the Hangul Jamo block. Conversely, not all of the obsolete jamo encoded by KS X 1001 are encoded in the main plane of KPS 9566. In the 2011 edition of KPS 9566, some of the other historic jamo from KS X 1001 are included outside of the main plane, with the lead byte 0xEA.

    The special encodings of the leaders' names are not present in Unicode and are mapped to the Private Use Area. They are shown below simulated with markup.

    Character set 0x25/0xA5 (row number 5, Cyrillic)

    This set includes both cases of 33 letters from the Cyrillic script, sufficient to write the modern Russian alphabet and Bulgarian alphabet, although other forms of Cyrillic require additional letters.[49]

  51. Book: Lunde , Ken . Ken Lunde

    . CJKV Information Processing: Chinese, Japanese, Korean & Vietnamese Computing . Ken Lunde . 2009 . 2nd . . . 978-0-596-51447-1 . Seemingly Missing Characters . 180 .

  52. Web site: Unicode Mail List Archive . Re: Arrow dingbats . Whistler . Ken . 2015-05-28.
  53. Web site: KPS 9566-2003 to Unicode . Unicode Consortium.
  54. The north-east and north-west white arrows used incorrect swapped Unicode mappings in the 2003 edition. This was corrected in the 2011 edition mappings.

    Character set 0x2E/0xAE (row number 14, Latin-1 subset)

    The characters in this set were not present in the 1997 version of the character set, but were added in the 2003 version. They constitute a subset of the Latin-1 Supplement block of Unicode (equivalent to the upper half of the ISO 8859-1 (Latin-1) character set). This includes accented Roman letters and symbols. Some of the symbols which were already included are omitted, while some others are duplicated as halfwidth counterparts to the earlier fullwidth forms: for example, the not sign (¬, U+00AC) is represented as 0xAEAC, while its fullwidth form (¬, U+FFE2) is represented as 0xA2D1 (in row 2).

    This row is omitted from the mapping for the 2011 edition of the standard, indicating it may have been removed at some point after the 2003 edition. The halfwidth yen sign is instead encoded at 0xE98E in the 2011 edition.

    The required space would fall outside of the 94-character range, colliding with the area used for extended Chosŏn'gŭl syllables when a UHC-style encoding is used (specifically, with the syllable 쁲), and is omitted. Although the y with trema also falls outside the 94-character range, and the trail byte 0xFF is otherwise unused, the code 0xAEFF is mapped to it in KPS 9566-2003.

    Precomposed Chosŏn'gŭl sets (rows number 16 through 44)

    See also: List of modern Hangul characters in ISO/IEC 2022–compliant national character set standards. Precomposed Chosŏn'gŭl syllable clusters are allocated code points in a continuous sorted block between code points 16-01 and 44-47 inclusive. Not all possible clusters are allocated code points. Compare the different ordering and availability in KS X 1001.

    The encoded form documented for KPS 9566-2003 encodes the KPS 9566 plane on GR (0xA1-0xFE) and additionally encodes the remaining syllable clusters using lead bytes in the range 0x80-0xC2 and trail bytes in the ranges 0x41-0x5A, 0x61-0x7A and 0x81-0xFE (where at most one byte is in the range 0xA1-0xFE),[53]

  55. Web site: Chung . Jaemin . KP0-E5A9 should be mapped to U+67FF instead of U+676E . UTC L2/21-059 . 2021-03-17.
  56. Web site: Kim . Kyongsok . 2002-11-30 . National Body Position: 3-way cross-reference tables - KS X 1001, KPS 9566, and UCS . ISO/IEC JTC 1/SC 2/WG 2 N2564. [Note: updated links for tables accompanying document: [http://asadal.pusan.ac.kr/~gimgs0/hangeul/code/3xreftbl/ks2kp_ucs-v09.txt] http://asadal.pusan.ac.kr/~gimgs0/hangeul/code/3xreftbl/kp2ks_ucs-v09.txt

    In August 2004, a pair of mapping tables between KPS 9566-2003 and Unicode were submitted to the OpenOffice.org project by an individual using the name "ooprojlover", who stated that they represented the updated version of the KPS 9566 standard and requested that support be added. These files mapped the characters unavailable in Unicode to the Private Use Area, and included additional encoded forms for other syllable blocks outside of the main ISO-IR-202 plane. A mapping table was later published by the Unicode Consortium in 2011, based on this mapping data but with errors corrected with reference to the ISO-IR chart.

    Copies of Red Star OS 3.0 include fonts for a more recent edition of KPS 9566, appearing to be KPS 9566-2011. The mapping table used by Red Star OS internally has been successfully extracted. Besides adding Kim Jong Un to the list of leaders, KPS 9566-2011 amends the mappings of certain vertical forms compared to the 2003 mappings (taking advantage of the Vertical Forms block added in Unicode 4.1), and also includes several additional Hanja and symbols encoded outside of the ISO-IR-202 plane. Several of these additional symbols are also mapped to the Private Use Area; however, their identity is not known, since no names or reference glyphs for those characters are known outside of North Korea.[37]

    Impact on Unicode today

    Several current Unicode characters were added to Unicode 4.0 as a result of the North Korean proposals, although not always at the original proposed codepoints. These include HOT BEVERAGE (☕, proposed as TEA SYMBOL), which was proposed as a map symbol for marking a tea house, and the flag symbols WHITE FLAG (⚐) and BLACK FLAG (⚑), which were proposed as map symbols for sites of battles and military victories.[38] These characters were proposed for the provisional code points U+270A, U+268E and U+268F respectively, but encoded at the final code points U+2615, U+2690 and U+2691 respectively. They also include a series of directional bold arrows in the range U+2B05 through U+2B0D, excluding a rightward arrow, which was mapped to an existing character in the Dingbats block, which were added at the same code points they were proposed for, besides the north-east and north-west arrows being swapped compared to the proposal.[39]

    Other pictographic characters which were included in the North Korean proposal include the umbrella with raindrops (☔), the lightning bolt for high voltage (⚡) and the warning triangle (⚠). Following some discussion about which other high voltage symbol glyphs in use represented the same character as the one from the North Korean proposal, and which glyph would be best to include for it in the Unicode code chart, and following modification of the code chart glyph of the existing umbrella character without rain (U+2602, ☂) to harmonise with the new umbrella with raindrops from the North Korean proposal, these characters were also added in Unicode 4.0, at the same time as the flags and the beverage symbol.[40] [41] [42] Although proposed for the provisional code points U+2618, U+267F and U+267E, they were given the final code points U+2614, U+26A1 and U+26A0 respectively.

    Of these characters, the hot beverage, umbrella with raindrops, lightning bolt and warning triangle, and the upward, downward and leftward arrows were subsequently selected as mappings from the Japanese cellular emoji sets,[43] making a total of seven current Unicode emoji which were originally added to Unicode at the request of North Korea. The umbrella with raindrops and the upward, downward and leftward arrows were also unified with characters from the ARIB extensions used in Japanese broadcasting,[44] which include several characters now classified as emoji,[45] and was mapped to Unicode in Unicode 5.2.[46] However, the pair of white and black flags used as emoji or in emoji regional and identity flag sequences is a different, "waving" set added in Unicode 7.0 (U+1F3F3 and U+1F3F4),[47] [48] not the North Korean pair.

    As of 2018, several KPS 9566 characters remained which are not mapped to Unicode. These include the WPK symbol, four triangular marks, a leftward-pointing pair of scissors (excluded on the rationale that contrastive use with the rightward scissors in the Dingbats block had not been demonstrated), an upward-pointing manicule in a circle, vertical presentation forms of punctuation marks, variants of closing brackets incorporating full stops, horizontal-barred variants of vulgar fractions encoded separately from their slanted versions, and the leaders' names.

    A Japanese postal mark with a downward pointing triangle was included in KPS 9566-97 but removed in KPS 9566-2003 after the North Korean body had withdrawn it from their Unicode proposal for review in response to requests from the South Korean body for evidence of the symbol's use in North Korea. This mark was re-proposed in 2018 on the basis of KPS 9566 compatibility, and identified as an electrical conformity mark used in Japan prior to its replacement by the PSE diamond. It was added to Unicode in version 13.0, published in 2020.

    Encoded forms

    The 1997 edition of KPS 9566 was registered with the International Register of Coded Character Sets for Use with Escape Sequences as ISO-IR-202, and can therefore be encoded using ISO/IEC 2022. It is a 94n multiple-byte G-set, i.e. if it is used in a 7-bit ISO 2022 code (analogous to ISO-2022-JP or ISO-2022-KR), characters will be encoded with pairs of bytes between 0x21 and 0x7E when in the appropriate mode.

    The documented mappings between KPS 9566 and Unicode for the 2003 and 2011 editions of KPS 9566 use an encoding resembling an adaptation of Unified Hangul Code (UHC) to encode KPS 9566 rather than Wansung code, with their updated versions of the ISO-IR-202 plane being encoded using pairs of bytes between 0xA1 and 0xFE, and with other two-byte codes used for syllables not present in ISO-IR-202. The order of the extended syllables follows usual KPS 9566 order. Similarly to UHC, they use lead bytes 0x81 and above, and trail bytes from the ranges 0x41 - 0x5A, 0x61 - 0x7A and 0x81 - 0xFE, excluding the range 0xA1 - 0xFE if the lead byte is 0xA1 or above.

    The 2011 edition also includes several additional Hanja and symbols encoded outside of the ISO-IR-202 plane, after the range used for the extended syllable blocks. This approach is similar to that taken by GBK, but with the trail bytes remaining in the UHC-style ranges: like the extended syllables with lead bytes 0xA1 and above, these all use the trail byte ranges 0x41 - 0x5A, 0x61 - 0x7A and 0x81 - 0xA0. Extended Hanja are encoded with lead bytes between 0xC8 and 0xDC, extended symbols are encoded using lead bytes between 0xE0 and 0xEA, and extended codes with lead bytes between 0xEC and 0xFE are mapped, without gaps, to the Private Use Area (compare the user-defined ranges in GBK). Several of the characters in the extended symbols section and three in the Hanja section are also mapped to the Unicode Private Use Area; unlike the PUA-mapped symbols in the main ISO-IR-202 plane, the identity of these characters is unknown.

    Lead byte

    This chart details the overall layout of the main plane of the KPS 9566 character set by lead byte. For lead bytes used for characters other than composed Chosŏn'gŭl syllables or Hanja, links are provided to charts on this page listing the characters encoded under that lead byte. For lead bytes used for Hanja, links are provided to the appropriate section of Wiktionary's Hanja index.

    Where two hexadecimal numbers are given, the value below 0x7F is used in a 7-bit encoding, and the larger value (between 0xA1 and 0xFE) is used in an 8-bit EUC-style encoding. The extended UHC-style 8-bit encodings defined by the 2003 edition onwards likewise use the larger byte values, between 0xA1 and 0xFE inclusive, for the main ISO-IR-202-based plane.

    Non-Hanja, non-composed sets in the main plane

    Character set 0x21/0xA1 (row number 1, punctuation and vertical forms)

    This set contains common sentence punctuation such as brackets, quotation marks, commas and so forth, as well as presentation forms for use in vertical writing. ASCII punctuation (highlighted) is shown below mapped to Basic Latin codepoints (consistent with articles on other CJK character sets, such as KS X 1001 or JIS X 0208), but is mapped to the Halfwidth and Fullwidth Forms block when used in an encoding which combines KPS 9566 with ASCII (as defined by, for example, the 2003 edition).

    Compared to the 2003 mapping, the 2011 mapping changes the Unicode mappings of three vertical presentation forms to take advantage of the Vertical Forms block introduced with Unicode 4.1.

    Character set 0x22/0xA2 (row number 2, symbols and operators)

    This set includes mathematical operators, and some other symbols such as the ampersand, pilcrow, musical note and so forth. ASCII punctuation (highlighted) is shown below mapped to Basic Latin codepoints (consistent with articles on other CJK character sets), but is mapped to the Halfwidth and Fullwidth Forms block when used in an encoding which combines KPS 9566 with ASCII.

    Several triangular "road mark" symbols denoting upcoming mountains or inclines ahead or to one side are included in this row, but not presently included in Unicode. They are mapped to the Private Use Area.[49]

    Compare row 12 of KS X 1001 and row 7 of JIS X 0208, which use the same layout (but in a different row).

    Character set 0x26/0xA6 (row number 6, Greek letters and Roman numerals)

    This set contains Roman numerals and basic support for the Greek alphabet, without diacritics or the final sigma.

    Compare and contrast row 5 of KS X 1001 (which uses the same characters but in a different layout and a different row) and row 6 of JIS X 0208 (which uses the same layout for the Greek letters, but without the Roman numerals).

    Character set 0x27/0xA7 (row number 7, encircled, superscript, subscript, fractions)

    Several circled numbers in this row were mapped to Unicode incorrectly in the 2003 edition, due to using non-final proposed code points. They were corrected in the 2011 edition.

    Character set 0x28/0xA8 (row number 8, unit, quantity and currency symbols)

    See also: CJK Compatibility. This set contains symbols for units of measure and currency. Those present in ASCII (highlighted) are shown below mapped to Basic Latin codepoints (consistent with articles on other CJK character sets), but are mapped to the Halfwidth and Fullwidth Forms block when used in an encoding which combines KPS 9566 with ASCII.

    The Kelvin sign was replaced with a euro sign in the 2003 edition. The 2011 edition includes an alternative encoding of the Kelvin sign at 0xE988.

    Compare and contrast with the repertoire of unit symbols included in row 7 of KS X 1001.

    Character set 0x2A/0xAA (row number 10, Hiragana)

    This row contains Hiragana for use in the Japanese language.

    Compare row 10 of KS X 1001, which uses the same layout. Compare and contrast row 4 of JIS X 0208, which also uses the same layout, but in a different row.

    Character set 0x2B/0xAB (row number 11, Katakana)

    This row contains Katakana for use in the Japanese language. However, the Japanese long vowel mark, which is used in katakana text and included in row 1 of JIS X 0208, is not included (similarly to with GB 2312 and KS X 1001),[51] although it is included by KPS 9566-2011 outside of the main plane, at 0xEA48.

    Compare row 11 of KS X 1001, which uses the same layout. Compare and contrast row 5 of JIS X 0208, which also uses the same layout, but in a different row.

    Character set 0x2C/0xAC (row number 12, miscellaneous symbols and arrows)

    For the purpose of mapping this row to Unicode, the bold rightward arrow was unified with the bold rightward arrow from Zapf Dingbats (U+27A1), although earlier tables (which lacked mappings for the other bold arrows) had instead unified it with U+279E, a slightly different Zapf Dingbats character. Since corresponding arrows in other directions were not included in the Dingbats block, additional arrows were encoded between U+2B05 and U+2B0D for compatibility with KPS 9566. These were incorporated into the Unicode code charts using the reference glyphs proposed by the North Korean national body, while U+27A1 retained its reference glyph based on Zapf Dingbats. These arrows (U+2B05 through U+2B07, plus U+27A1) were chosen in Unicode 6.0 as the mappings for some of the arrow characters in cellular emoji sets. Subsequently, during the addition of the Wingdings 3 repertoire in Unicode 7.0, the Unicode coverage of arrow characters was reviewed, resulting in an additional rightward arrow being added at U+2B95 with the intent of harmonising with characters U+2B05 through U+2B0D (in text presentation), since changing the reference glyph for the Zapf Dingbats character was not considered appropriate.[52]

    In earlier editions of KPS 9566, such as the 1997 edition, this row included both the simple Japanese-style postal mark (〒) and a version in a downward-pointing triangle, which was proposed by the North Korean national body for addition to Unicode alongside the other missing KPS 9566 characters. A response by a South Korean representative, amongst other requests, requested evidence for the symbol's use in North Korea, noting that the Japanese-style postal mark is not used in South Korea, which uses a circled 우 (i.e. ㉾) for a similar purpose, and enquiring whether a Japanese-style postal mark was in use in North Korea. A subsequent meeting was held to discuss this proposal, attended by North and South Korean WG2 representatives; the meeting report notes that the North Korean body had decided to review the character before discussing it further, and therefore did not recommend it for consideration by WG2 as a whole. The postal mark triangle was subsequently removed from KPS 9566 in 2003, leaving only the unenclosed postal mark.

    The postal mark triangle was eventually added to Unicode in version 13.0, both for compatibility with the legacy KPS 9566-97 character, and subsequent to the mark being identified as a symbol which had been used for certification for electrical appliances in Japan (as a predecessor to the PSE diamond).

    Certain KPS 9566 characters in this row, namely two forms of the emblem of the Workers' Party of Korea, a pair of scissors pointing in a different direction to those in the Dingbats block, and a circled upward-pointing manicule, remain mapped to the Private Use Area.[53] similarly to Unified Hangul Code but with the omitted clusters from and sorting order of KPS 9566, not KS X 1001.

    (user-defined area)
    (user-defined area)
    (user-defined area)

    Hanja sets (rows number 45 through 94)

    The Hanja at 69-09 (0xE5A9) is mapped to U+676E in all documented tables; characters are, however ordered according to their readings, from which it appears that it is intended to be U+67FF instead.[55]

    Extended non-syllable, non-Hanja sets in KPS 9566-2011

    Following are charts for the non-syllable, non-Hanja section of KPS 9566-2011 outside of the main plane.

    Extension sets 0xE1, 0xE2, 0xE3 (unknown)

    All characters in these extension sets map to the private use area. Their purpose is unknown.

    Extension set 0xE4 (arrows)

    This set includes several, mostly rightward arrows mapping to the Unicode Dingbats block and elsewhere.

    Extension set 0xE5 (Roman superscripts and subscripts)

    This row includes several lowercase Roman superscripts with trail bytes corresponding to their uppercase ASCII equivalents, and lowercase Roman subscripts with trail bytes corresponding to their lowercase ASCII equivalents.

    Extension set 0xE8

    All characters in this extension set map to the private use area, except 0xE884 which maps to .

    Extension set 0xE9 (additional symbols and punctuation)

    This set contains playing card suit symbols, various miscellaneous symbols, and halfwidth counterparts for some of the currency symbols in row 8. The Kelvin sign is also included, having been replaced in row 8 by the euro sign.

    Extension set 0xEA (Japanese punctuation and additional jamo)

    This set contains several punctuation marks used in Japan, and some characters from the Hangul Compatibility Jamo Unicode block which are not already included in row 4. This comprises some of the jamo characters present in KS X 1001, but previously absent in KPS 9566.

    External links