UTF-7, UTF-8, UTF-16 und UTF-32 sind einfach algorithmische Transformationsformate derselben Kodierung (Kodepunkte) von Zeichen. Sie sind Kodierungen eines Systems zur Kodierung von Zeichen.
Sie sind auch algorithmisch einfacher vorwärts und rückwärts zu navigieren als die meisten vorherigen Schemata für den Umgang mit Zeichensätzen, die größer als 256 Zeichen sind.
Dies unterscheidet sich stark von der landes- und manchmal herstellerspezifischen Kodierung von Glyphen. Alleine auf Japanisch gab es eine Menge Variationen von JIS, ganz zu schweigen von EUC-JP und der Codepage-orientierten Umwandlung von JIS, die DOS / Windows-Maschinen mit der Bezeichnung Shift-JIS verwendeten. (Bis zu einem gewissen Grad gab es algorithmische Transformationen von diesen, aber sie waren nicht besonders einfach und es gab herstellerspezifische Unterschiede in den verfügbaren Zeichen. Multiplizieren Sie dies mit ein paar hundert Ländern und der schrittweisen Entwicklung komplexerer Schriftsysteme (Post-Greenscreen) Ära), und Sie hatten einen echten Albtraum.
Warum brauchen Sie diese Transformationsformen von Unicode? Da viele ältere Systeme Sequenzen mit 7-Bit-Zeichen im ASCII-Bereich voraussetzten, brauchten Sie eine saubere 7-Bit-Lösung, mit der Daten sicher und fehlerfrei durch diese Systeme geleitet werden können. Dann brauchten Sie UTF-7. Dann gab es modernere Systeme, die mit 8-Bit-Zeichensätzen umgehen konnten, aber Nullen hatten im Allgemeinen eine besondere Bedeutung, sodass UTF-16 für sie nicht funktionierte. 2 Bytes könnten die gesamte mehrsprachige Grundebene von Unicode in ihrer ersten Inkarnation codieren, sodass UCS-2 für Systeme, die von Grund auf "Unicode-fähig" sein sollten (wie Windows NT und die Java-VM), als vernünftiger Ansatz erscheint. dann erforderten die Erweiterungen darüber hinaus zusätzliche Zeichen, was zur algorithmischen Transformation der 21-Bit-Codierungen führte, die durch den Unicode-Standard reserviert wurden, und es wurden Ersatzpaare geboren; das erforderte UTF-16. Wenn Sie eine Anwendung hatten, bei der die Konsistenz der Zeichenbreite wichtiger war als die Effizienz der Speicherung, war UTF-32 (früher als UCS-4 bezeichnet) eine Option.
UTF-16 ist das einzige Problem, mit dem man sich aus der Ferne befassen muss. Dies lässt sich durch die geringe Anzahl von Zeichen, die von dieser Transformation betroffen sind, und durch die Tatsache, dass die führenden 16-Bit-Sequenzen in einem völlig anderen Bereich liegen als die nachfolgenden 16-Bit-Sequenzen. Es ist auch um Welten einfacher, als in vielen frühen ostasiatischen Codierungen vorwärts und rückwärts zu gehen, in denen Sie entweder einen Zustandsautomaten (JIS und EUC) für die Verarbeitung der Escape-Sequenzen benötigen oder möglicherweise mehrere Zeichen zurücksetzen müssen, bis Sie etwas gefunden haben, das garantiert ist nur ein führendes Byte sein (Shift-JIS). UTF-16 hatte einige Vorteile auf Systemen, die auch 16-Bit-Sequenzen effizient durchlaufen konnten.
Man könnte meinen, es sei denn, man müsse Dutzende (Hunderte, wirklich) verschiedener Codierungen durchstehen oder Systeme bauen, die mehrere Sprachen in unterschiedlichen Codierungen unterstützen, manchmal sogar im selben Dokument (wie WorldScript in den älteren MacOs-Versionen) der Unicode-Transformationsformate als unnötige Komplexität. Gegenüber früheren Alternativen wird die Komplexität jedoch drastisch reduziert, und jedes Format löst eine echte technische Einschränkung. Sie sind auch wirklich effizient untereinander konvertierbar und erfordern keine komplexen Nachschlagetabellen.