Ich denke, die Codepunkte von UCS und Unicode sind gleich, habe ich recht?
Warum brauchen wir in diesem Fall zwei Standards (UCS und Unicode)?
Sie sind keine zwei Standards. Der Universal Character Set (UCS) ist kein Standard, sondern etwas, das in einem Standard definiert ist, nämlich ISO 10646. Dies sollte nicht mit Kodierungen wie UCS-2 verwechselt werden.
Es ist schwer zu erraten, ob Sie tatsächlich verschiedene Kodierungen oder andere Standards meinen. Im Hinblick auf Letzteres waren Unicode und ISO 10646 ursprünglich zwei verschiedene Standardisierungsbemühungen mit unterschiedlichen Zielen und Strategien. Sie wurden jedoch in den frühen 1990er Jahren harmonisiert, um das Durcheinander zweier unterschiedlicher Standards zu vermeiden. Sie wurden so koordiniert, dass die Codepunkte tatsächlich gleich sind.
Sie wurden jedoch getrennt gehalten, teilweise weil Unicode von einem Industriekonsortium definiert wird, das flexibel arbeiten kann und großes Interesse daran hat, Dinge zu standardisieren, die über einfache Codepunkt-Zuweisungen hinausgehen. Der Unicode-Standard definiert eine große Anzahl von Prinzipien und Verarbeitungsregeln, nicht nur die Zeichen. ISO 10646 ist ein formeller Standard, auf den in Normen und anderen Dokumenten der ISO und ihrer Mitglieder verwiesen werden kann.
Die Codepunkte sind gleich, aber es gibt einige Unterschiede. Von dem Wikipedia-Eintrag über die Unterschiede zwischen Unicode und ISO 10646 (d. H. UCS) :
Der Unterschied zwischen ihnen besteht darin, dass Unicode Regeln und Spezifikationen hinzufügt, die außerhalb des Geltungsbereichs von ISO 10646 liegen. ISO 10646 ist eine einfache Zeichenzuordnung, eine Erweiterung früherer Standards wie ISO 8859. Im Gegensatz dazu fügt Unicode Regeln für die Sortierung und Normalisierung hinzu von Formularen und dem bidirektionalen Algorithmus für Skripte wie Hebräisch und Arabisch
Sie könnten nützlich finden, das absolute Minimum zu lesen, das jeder Softwareentwickler unbedingt, unbedingt über Unicode und Zeichensätze wissen muss (keine Ausreden !)
Ich denke, die Unterschiede ergeben sich aus der Codierung der Codepunkte. UCS-x verwendet eine feste Anzahl von Bytes, um einen Codepunkt zu codieren. Zum Beispiel verwendet UCS-2 zwei Bytes. UCS-2 kann jedoch keine Codepunkte codieren, die mehr als 2 Byte benötigen. Auf der anderen Seite verwendet UTF eine variable Anzahl von Bytes für die Codierung. UTF-8 verwendet zum Beispiel mindestens ein Byte (für ASCII-Zeichen), verwendet jedoch mehr Bytes, wenn das Zeichen außerhalb des Ascii-Bereichs liegt.