Python ist doch neuerdings (seit 3?) auch UTF-16, oder?
Python 3.2 und früher haben Unicode-Strings immer intern als UCS-2 oder UCS-4 gespeichert, je nach Kompilations- und Plattformoptionen (Verfügbarkeit und Breite von wchar_t, z. B. Windows NT im Gegensatz zu unixoiden C-Bibliotheken). Das hat gerade mit den 16-Bit-Datentypen immer Probleme gegeben, wenn man Zeichen außerhalb der BMP verwenden will.
Python 3.3 (PEP 393) führt hingegen PyUnicodeObject ein, das Strings in verschiedenen Repräsentationen speichern kann; insbesondere können ASCII-Strings effizient gespeichert und UTF-8-Daten direkt mit nativem Code ausgetauscht werden.
