hi @Rolf B
Hab ich nie behauptet. Lies nochmal genau. Und mach die Schritte EINZELN. Es gibt eine Schicht zwischen Zeichen und Bytes. WIRKLICH!
Genau: Die Kodierung. So liegt der Codepoint des € 0x20Ac zwischen zwischen 0x800 und 0x10000 und das heißt, daß dieses Zeichen mit 3 Bytes zu kodieren ist wenn die Kodierung utf-8 heißt.
Dieser Algorithmus in PHP ($cp ist der Codepoint):
$bytes = pack('CCC', 0xe0 + ($cp >> 12), 0x80 + (($cp >> 6) & 0x3f), 0x80 + ($cp & 0x3f ));
Was diese 3 Bytes (0xE2, 0x82, 0xAC) erzeugt.
Aber eigentlich wollte ich nur wissen wie @TS darauf kommt daß Eurozeichen vermittels zweier Zeichen kodiert wird.
Ja, der hat auch Bytes und Codepoint (=Zahl) verwechselt.
Nun, das Eurozeichen hat nur einen Codepoint, kein Decomposition Mapping und UTF-8-kodiert genau 3 Bytes.
Wie @TS unter diesen Umständen auf 2 Zeichen kommt wird wohl immer sein Geheimnis bleiben.
MfG