Der Universal Coded Character Set (UCS) ist ein Zeichensatz, der in der internationalen Norm ISO/IEC 10646 definiert ist. Seit der Revision 2011 (ISO/IEC 10646:2011) sind die definierten Zeichenkodierungen einschließlich ihrer Benennungen identisch mit denen des Unicode-Standards:
Ältere Ausgaben der Norm definierten andere Kodierungen, die jetzt deprecated sind:
- UCS-2, Untermenge von UTF-16
- UCS-4, als Codierung identisch mit UTF-32
Der Unterschied zwischen 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 (BMP) darstellen.
- UTF-16 ist eine Flexible-Byte-Kodierung: ein einzelnes Zeichen ist 2 Byte oder 4 Byte lang – 2 Byte bei Zeichen in der oben genannten BMP, 4 Byte bei Zeichen außerhalb der 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
- 1 2 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).