Tach!
const bytes = [65, 66, 67, 0xF0, 0x9D, 0x9F, 0x82, 0xE2, 0x82, 0xAC, 0xC3, 0xA4]; const text = new TextDecoder().decode(new Uint8Array(bytes))
Da kommen keine Codepoints dabei raus.
Dann nimm noch
codePointAt()
dazu.text.length ist ja schon falsch. Denn es sind 6 Codepoints, nicht 7.
Es sind 6 sichtbare und das Zeichen U+DFC2 aus dem Low-Surrogates-Bereich zwischen 𝟂 und €.
In UTF-8 gibt es keine Surrogate. Und der Codepoint U+DFC2 ist falsch bzw, zuviel im Ergebnis. Diese 6 Codepoints müssen rauskommen: 41 42 43 1D7C2 20AC E4
MFG