pl: Binary String verarbeiten

Beitrag lesen

problematische Seite

hi @Rolf B

Anmerkung: Die Funktion charCodeAt() liefert die Wertigkeiten beliebiger Bytes.

In deinem speziellen Fall ja. Im allgemeinen: Nein. Gegenbeispiel:

let a = "17€";
console.log(a.charCodeAt(2));
// -> 8364

Das ist kein Byte. Das ist ein Unicode-Zeichen.

Genau. Weil Du eben nicht mit Bytes operierst sondern mit Zeichen. Mein Artikel erklärt ja den Unterschied.

Du müsstest also, um bytesemantisch arbeiten zu können, aus der Zeichenkette einen Blob erzeugen:

blob = new Blob(['17€']);

Und wenn Du den Blob dann als BinaryString hast, hat der eine Länge von 5 Byte. Und siehe da, der index [2] zeigt da nicht auf das 3. Zeichen sondern auf das 3. Byte mit der Wertigkeit E2 (226 dezimal) also das erste zum Eurozeichen gehörige Byte.

MfG