Der Unified Hangul Code ( UHC ) [ 2 ] [ a ] oder Extended Wansung [ 4 ] [ b ] , unter Microsoft Windows auch als Codepage 949 ( Windows-949 , MS949 oder mehrdeutig CP949 ) bekannt, ist die Microsoft-Windows- Codepage für die koreanische Sprache . Er ist eine Erweiterung des Wansung-Codes ( KS C 5601 :1987, kodiert als EUC-KR ) und umfasst alle 11172 nicht-partiellen Hangul- Silben des Johab (KS C 5601:1992 Anhang 3). [ 4 ] [ 2 ] Dies entspricht den vordefinierten Silben, die in Unicode 2.0 und späteren Versionen verfügbar sind.

Der Wansung-Code hat den Nachteil, dass er nur Codes für die 2350 vorgefertigten Hangul-Silben zuweist, die über eigene KS X 1001 (KS C 5601) Codepunkte verfügen (von insgesamt 11172, ohne die mit veraltetem Jamo). Zudem erfordert er die Verwendung von Acht-Byte-Kompositionssequenzen, die von einigen Teilimplementierungen des Standards nicht unterstützt werden. [ 5 ] UHC löst dieses Problem, indem es allen möglichen, mit modernem Jamo konstruierten Silben einzelne Codes zuweist und diese Zuweisungen außerhalb des für KS X 1001 verwendeten Kodierungsraums vornimmt.

Der Bereich des ersten Bytes wird auf 0x81–FE erweitert , der Bereich des zweiten Bytes auf 0x41–5A, 0x61–7A und 0x81–FE (in EUC-KR sind beide Bereiche 0xA1–FE). Die Codes außerhalb der EUC-KR-Bereiche werden für das zusätzliche Hangul verwendet. [ 6 ] Betrachtet man sie getrennt, so entsprechen sowohl der EUC-KR-Hangul-Block als auch der erweiterte Hangul-Abschnitt von UHC der Unicode-Reihenfolge. [ 1 ]

Terminologie

Unified Hangul Code ist bei der IANA nicht als Standard für die Informationsübertragung über das Internet registriert. [ 7 ] Alternativen sind beispielsweise UTF-8 . Der von HTML5 verwendete W3C / WHATWG -Codierungsstandard integriert jedoch die Unified-Hangul-Code-Erweiterungen in seine Definition von „EUC-KR“. [ 1 ]

Microsoft ordnet Windows-949 die Bezeichnung „ks_c_5601-1987“ zu [ 8 ] [ 9 ] , die korrekterweise auf KS X 1001 selbst zutrifft ( KS C 5601 ist der ursprüngliche Name von KS X 1001). [ 10 ] Die WHATWG verwendet die Bezeichnung „ks_c_5601-1987“ synonym mit „EUC-KR“, um die Kompatibilität mit bereits bereitgestellten Inhalten zu gewährleisten. [ 11 ] Die Sammlung „OBSOLETE/EASTASIA“ des Unicode-Konsortiums enthielt zurückgezogene Zuordnungen für Unified Hangul Code als „KSC5601.TXT“, wobei die automatisch abgeleiteten Zuordnungen für 7-Bit-KS X 1001 als „KSX1001.TXT“ enthalten waren. [ 12 ]

Die IBM-Codepage 949 ist eine weitere, ansonsten unabhängige Erweiterung von EUC-KR. International Components for Unicode (ICU) verwendet „cp949“, „949“ oder „ibm-949“ für diese IBM-Codepage [ 13 ] und „ms949“ oder „windows-949“ (oder verschiedene Varianten von „ks_c_5601-1987“) für die Windows-Zuordnung von UHC [ 14 ] . Python hingegen erkennt „cp949“, „949“, „ms949“ und „uhc“ als Bezeichnungen für UHC und enthält keinen IBM-949-Codec [ 15 ] . Von den Bezeichnungen mit Codepage-Nummer erkennt die WHATWG nur „windows-949“ [ 11 ] .

Die IBM-Codepage für Unified Hangul Code heißt Codepage 1363 ( IBM-1363 ) oder „Korean MS-Win“. Sie ist eine Kombination aus SBCS- Codepage 1126 und DBCS -Codepage 1362. [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] Sie unterscheidet sich dadurch, dass 0x5C durch ein einzelnes Byte dem Won-Zeichen (U+20A9) zugeordnet ist; [ 21 ] [ 22 ] [ 23 ] Windows ordnet 0x5C wie in ASCII U+005C (dem Unicode-Codepunkt für den Backslash ) zu, [ 14 ] obwohl Schriftarten es oft immer noch als Won-Zeichen darstellen. [ 24 ] Die Unicode-Zuordnung des Wellenstrichs (0xA1AD) ist ebenfalls unterschiedlich. IBM bevorzugt U+301C, [ 25 ] während Microsoft U+223C (Tilde-Operator) bevorzugt. [ 26 ] Die IBM-Zuordnung für UHC ist in ICU als „ibm-1363“ verfügbar, [ 21 ] wohingegen der ICU-Codec „windows-949“ in einigen ICU-Quellcodekommentaren als IBM-1261 bezeichnet wird. [ 27 ]

Einzelbyte-Codes

Im Folgenden ist der von IBM definierte Einzelbyte-Abschnitt der Codepage dargestellt. Ähnlich wie bei Codepage 437 können die Steuerbytes je nach Kontext als Steuerzeichen oder Grafikcodes verwendet werden – die Grafikcodes sind unten aufgeführt. Microsoft verwendet ASCII-Zuordnungen für alle ASCII-Bytes, wobei der Backslash weiterhin als Win-Zeichen dargestellt werden kann .

Codeseite 1126 [ 28 ] [ 29 ] [ 30 ] [ 31 ]
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x NUL┌┐└┘│─•◘○◙♂♀♪♫☼
1x ┼◄↕‼┴┬┤↑├→←∟↔▲▼
2x  SP !"#$%&'()*+,-Die/
3x 0123456789:;<=>?
4x @ABCDEFGHICHJKLMNO
5x PQRSTUVWXYZ[₩]^_
6x `ABCDeFGHichJklMNO
7x PQRSTuvwXyz{|}~⌂
  Unterschiede zur Codeseite 437

Fußnoten

  1. ^ Koreanisch :  통합형 한글 코드 [ 3 ] ; RR :  Tonghabhyeong Hangeul Kodeu
  2. ^ Koreanisch :  확xnxx 완성형 ; RR :  Hwagjang Wanseonghyeong

Referenzen

  1. ^ van Kesteren, Anne , „5. Indizes (§ index EUC-KR)“ , Encoding Standard , WHATWG
  2. ^ a b "INFO: Hangul (Koreanische) Zeichensätze" , Microsoft Support , Microsoft
  3. ^ „한글 코드에 대하여“ (auf Koreanisch). W3C. Archiviert vom Original am 24.05.2013 . Abgerufen am 02.01.2018 .
  4. ^ a b Zsigri, Gyula (2002-06-18). "KSC und UHC" .
  5. ^ Shin, Jungshik. „Was sind KS X 1001 (KS C 5601) und andere Hangul-Codes?“ . Hangul & Internet in Korea FAQ .
  6. ^ Lunde, Ken (13. Januar 2009). „Anhang F: Herstellerkodierungsmethoden“ (PDF) . CJKV Information Processing (2. Aufl.). O’Reilly Media . ISBN 978-0-596-51447-1Die
  7. ^ „Zeichensätze“ . Iana.org . Abgerufen am 11.01.2017 .
  8. ^ "Encoding.WindowsCodePage-Eigenschaft - .NET Framework (aktuelle Version)" . MSDN . Microsoft.
  9. ^ „Code Page Identifiers“ , Windows Dev Center , Microsoft, 7. Januar 2021
  10. ^ IBM ; Unicode Consortium . "convrtrs.txt" . Internationale Komponenten für Unicode . Version 59180.0.1. Archiviert vom Original am 28.07.2020 . Abgerufen am 16.05.2020 . <Zitat von Jungshik Shin> [...] Die Verwendung von KS C 5601 oder ähnlichen Bezeichnungen für EUC-KR oder Windows-949 ist sehr irreführend. [...] Es handelt sich lediglich um den Namen eines 94x94-Zeichensatzstandards für koreanische Zeichen, der entweder in GL (mit MSB-Reset) oder GR (mit MSB-Set) verwendet werden kann.
  11. ^ a b van Kesteren, Anne . „4.2. Namen und Etiketten“ . Kodierungsstandard . WASWG.
  12. ^ Jungshik Shin. "KSX1001.TXT: KS X 1001 to Unicode table" . Unicode, Inc.
  13. ^ "ibm-949_P110-1999 (alias cp949)" , Converter Explorer , Internationale Komponenten für Unicode
  14. ^ a b "windows-949-2000" , Converter Explorer , Internationale Komponenten für Unicode
  15. ^ „Codecs – Codec-Registry und Basisklassen § Standardkodierungen“ . Python 3.7.2 Dokumentation . Python Software Foundation.
  16. ^ „Coded character set identifiers - CCSID 1363“ , IBM Globalization , IBM, archiviert vom Original am 29.11.2014
  17. ^ „Informationsdokument zur Codeseite 1126“ . Archiviert vom Original am 16.01.2017.
  18. ^ „CCSID 1126 Informationsdokument“ . Archiviert vom Original am 27.03.2016.
  19. ^ „Informationsdokument zur Codeseite 1362“ . Archiviert vom Original am 17.03.2016.
  20. ^ „CCSID 1362 Informationsdokument“ . Archiviert vom Original am 27.03.2016.
  21. ^ a b "ibm-1363" , Converter Explorer , Internationale Komponenten für Unicode
  22. ^ Code Page CPGID 01126 (pdf) (PDF) , IBM
  23. ^ Code Page CPGID 01126 (txt) , IBM
  24. ^ Kaplan, Michael S. (17.09.2005), „Wann ist ein Backslash kein Backslash?“ , Sortierung
  25. ^ "ibm-1363_P110-1997 (lead byte A1)" . ICU Demonstration - Converter Explorer . Internationale Komponenten für Unicode.
  26. ^ "windows-949-2000 (lead byte A1)" . ICU Demonstration - Converter Explorer . Internationale Komponenten für Unicode.
  27. ^ Siehe zum Beispiel ucnv_lmb.cpp, archiviert am 2020-01-02 in der Wayback Machine (Brendan Murray, Jim Snyder-Grant), wo das führende Byte 0x11 nach der Definition von als Verweis auf "Korean: ibm-1261" kommentiert istder Datei im Array dem ICU-CodecULMBCS_GRP_KOzugeordnet wird."windows-949"OptGroupByteToCPName
  28. ^ Code Page CPGID 01126 (pdf) (PDF) , IBM
  29. ^ Code Page CPGID 01126 (txt) , IBM
  30. ^ ICU-Demonstration: Zuordnung von IBM-1363 zu Unicode
  31. ^ ICU-Demonstration: Zuordnung von IBM-1363C (ASCII-basierte Variante) zu Unicode