Universal Coded Character Set
Der Universal Coded Character Set (UCS) ist eine Zeichenkodierung, die in der internationalen Norm ISO/IEC 10646 definiert ist. Diese deckt sich vollständig mit den korrespondierenden Unicode-Kodierungen UTF-16 und UTF-32.[1] Seit der Revision 2011 (ISO/IEC 10646:2011) sind die Kodierungen in jeder Hinsicht identisch mit denen des jeweiligen Unicode-Standards.
Der Unterschied zwischen z. B. UCS-2 und UTF-16 ist folgender:
- UCS-2 ist eine Fixed-Byte-Kodierung: jedes Zeichen ist genau 2 Byte lang. UCS-2 kann damit die 65.536 Zeichen der Basic Multilingual Plane darstellen.
- UTF-16 ist eine Flexible-Byte-Kodierung: ein einzelnes Zeichen ist 2 Byte lang (für Zeichen auf der o. g. BMP) oder 4 Byte lang (für Zeichen außerhalb der o. g. BMP).
Dadurch hat jedes UCS2-Zeichen den gleichen Codepoint wie das entsprechende UTF-16-Zeichen, aber nicht jedes UTF-16 Zeichen kann in UCS-2 dargestellt werden (wenn es nämlich in UTF-16 vier Byte umfasst).
Der UCS wird entwickelt von ISO/IEC/JTC1/SC2/WG2. Die Gruppe arbeitet sehr eng mit dem Unicode-Konsortium zusammen, das die Standards ständig in neuen Versionen synchronisiert. Aufgrund dessen sind alle Kodierungen aus Gründen der Interoperabilität beschränkt auf die bei Unicode erlaubten 1.112.064 Zeichen (= 220+216, abzüglich 211 = 2048 Surrogate von UTF-16), nämlich von U+00000 bis U+0D7FF sowie von U+0E000 bis U+10FFFF.
Ursprünglich wurden diese beiden Formate definiert:
- UCS-2: obsolete Kodierung in 2 Byte; dabei lässt sich nur die Basic Multilingual Plane kodieren. Dies ermöglicht die Codierung der meisten lebenden Sprachen und der gebräuchlicheren Sonderzeichen. UCS-2 ist nicht mehr Bestandteil des Standards. UCS-2 war auch der Zeichensatz von Microsoft Windows NT, wohingegen seit Windows 2000 UTF-16 eingesetzt wird.
- UCS-4: Kodierung in 4 Byte (entspricht UTF-32).
In der Version ISO/IEC 10646-3:2003 wurden die gleichen Formate UTF-8, UTF-16 und UTF-32 beschrieben wie in Unicode 4.0.
Gegenüberstellung der Versionen
- ISO/IEC 10646-1:1993 ≈ Unicode 1.1
- plus ISO/IEC 10646-1:1993/Amd 5:1998 bis ISO/IEC 10646-1:1993/Amd 7:1997 ≈ Unicode 2.0/2.1
- ISO/IEC 10646-1:2000 ≈ Unicode 3.0
- plus ISO/IEC 10646-2:2001 ≈ Unicode 3.1
- plus ISO/IEC 10646-1:2000/Amd 1:2002 ≈ Unicode 3.2
- ISO/IEC 10646-3:2003 ≈ Unicode 4.0
- plus ISO/IEC 10646:2003/Amd 1:2005 ≈ Unicode 4.1
- plus ISO/IEC 10646:2003/Amd 2:2006 ≈ Unicode 5.0
- plus ISO/IEC 10646:2003/Amd 3:2008 und ISO/IEC 10646:2003/Amd 4:2008 ≈ Unicode 5.1
- plus ISO/IEC 10646:2003/Amd 5:2008 und ISO/IEC 10646:2003/Amd 6:2009 ≈ Unicode 5.2
- ISO/IEC 10646:2011 ≈ Unicode 6.0
- ISO/IEC 10646:2012 ≈ Unicode 6.1/6.2/6.3
- plus ISO/IEC 10646:2012/Amd 1:2013 und ISO/IEC 10646:2012/Amd 1 ≈ Unicode 7.0
- ISO/IEC 10646:2014 und ISO/IEC 10646:2014/Amd 1:2015 ≈ Unicode 8.0
- plus ISO/IEC 10646:2014/Amd 2:2016 ≈ Unicode 9.0
- ISO/IEC 10646:2017 ≈ Unicode 10.0
Weblinks
- Freely Available Standards mit ISO/IEC 10646 bei der ISO
Einzelnachweise
- The Unicode® Standard Version 10.0 – Core Specification: Appendix C Relationship to ISO/IEC 10646. The Unicode Consortium, S. 907–908, abgerufen am 12. April 2018 (englisch).