Die ständig wachsende Zahl von hinzukommenden Schriftzeichen führte dazu, dass Unicode immer wieder erweitert werden musste. Das Zeichenset ist mittlerweile in mehrere Ebenen (engl. „planes“) unterteilt. Das Praktische daran ist, dass man auf jeder der mittlerweile insgesamt 17 Ebenen wieder eine bestimmte Anzahl weiterer Zeichen unterbringen kann (bei einer 16 Bit-Kodierung pro Ebene 65.536 Zeichen), so dass sich insgesamt erheblich mehr, nämlich 1.114.112 Möglichkeiten der Zeichenkodierung ergeben.
Die verschiedenen Ebenen von Unicode
Wichtig für die Darstellung von außereuropäischen Schriftzeichen sind bislang eigentlich nur die Ebenen 0 bis 2. Auf Ebene 0 („Basic Multilingual Plane [BMP]“) befinden sich zum Beispiel die lateinischen Schriftzeichen, sowie Griechisch, Hebräisch, Arabisch, Äthiopisch, N’Ko, Tifinagh, Vai und Bamum (siehe Übersicht). Während die ersten 256 Zeichen dieser Ebene, die vor allem für die lateinischen Schrift- und Sonderzeichen relevant sind, noch mit nur 8 Bit (1 Byte) pro Zeichen darstellbar sind, werden die binären Zahlenkombinationen für alle darüber liegenden Zeichen mit aufsteigender „Nummerierung“ länger, und man benötigt dort mehr Bits. Die Zeichen werden daher in gängiger Weise mit 16 Bit (2 Bytes) dargestellt. Mit 16 Bit kann man maximal 65.536 Zeichen darstellen, und genauso viele Zeichen befinden sich auf der Ebene 0.
Auf der Ebene 1 („Supplementary Multilingual Plane [SMP]“) befinden sich dann weitere Zeichen alter oder außereuropäischer Schriftsysteme, wie zum Beispiel altgriechische und koptische Zahlenzeichen, Osmanya, Meroitische Hieroglyphen, Aldsüdarabsich, Ägyptische Hieroglyphen, Ergänzungen für Bamum, sowie Bassa Vah und Medefaidrin (siehe Übersicht). Auf dieser Ebene reichen selbst 16 Stellen nicht mehr für die immer länger werdenden binären Zahlenkombinationen der Zeichen aus. Eins-zu-eins-Darstellungen der binären Zahlenfolgen kann man hier nur noch über 32 Bit-Kodierungen (4 Bytes) vornehmen.
Die Ebene 2 („Supplementary Ideographic Plane [SIP]“) enthält dann vor allem chinesische und japanische Schriftzeichen. Alle weiteren der insgesamt 17 Ebenen (die Ebenen 3 bis 16) sind entweder noch nicht vergeben oder enthalten, neben etlichen freigehaltenen Positionen, vor allem Tags, Variantenselektoren und private Nutzungsbereiche.
Nähere Details zu den verschiedenen Belegungsebenen gehen auch aus der Beschreibung des Unicode-Konsortiums (Unicode 11.0.0, S. 44-52) hervor.
Zu viele Bits? – Unicode Transformationsformate (UTF)
Wollte man alle bisher „gesammelten“ Schriftzeichen in einem einzigen System eins zu eins darstellen, ohne dass es zu Verwechslungen kommt, müsste man also die gesamten bisherigen Angaben in allen Ebenen einheitlich auf 32 Bits umstellen. (Kleineren Ziffern müsste man dann eine entsprechende Anzahl von Nullen vornean stellen, damit sie ebenfalls auf 32 Stellen kommen.) Das aber brächte einige Probleme mit sich. Zum einen würde dies häufig viel zu große Mengen an Speicherplatz verbrauchen. Zum anderen wären ältere Dokumente oder Webseiten, die solch eine Umstellung nicht vollzogen haben, mit der neuen Darstellungsform nicht kompatibel. Die Lösung wird deshalb genau andersherum gesucht: man versucht, die langen 32 Bit-Darstellungen über nochmalige Verschlüsselungen zu verkürzen. Dazu gibt es mehrere Umwandlungsmöglichkeiten, die sogenannten „Unicode transformation formats (UTF)“ (Unicode 11.0.0, S. 121). Während „UTF-32“, das die 32 Bit der höheren Ebenen eins zu eins beibehält, vor allem bei Betriebssystemen und Anwendungen mit großen Speicherkapazitäten angewandt wird, werden in anderen Bereichen die 32 Bit-Angaben über die Kodierungsform „UTF-16“ in 16 Bit-Angaben transformiert. Bei der Kodierung „UTF-8“ (dem üblichen Format im Internet) werden die zuvor oft langen Bit-Angaben sogar noch kürzer, denn sie werden in 8 Bit-Angaben transformiert (alle binären Werte, sowohl 32 Bit als auch 16 Bit-Werte, werden in UTF-8 gleichermaßen in 8 Bit-Angaben umgewandelt). Solche UTF-Angaben stellen jeweils eigene, nochmalige Kodierungen dar und sind nicht mit den „eigentlichen“ 16- oder 8-Bit Darstellungen der Ebene 0 zu verwechseln (siehe Unicode 11.0.0, S. 35-39).