JavaScript/Objekte/String/fromCodePoint

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Methode fromCodePoint() übersetzt eine Folge von Unicode-Zeichennummern (Codepoints) in eine JavaScript Zeichenkette. Dabei wird beachtet, dass jedes Zeichen in einer JavaScript-Zeichenkette als 16 Bit-Wert codiert wird und Unicode-Zeichen mit einer Zeichennummer über 65535 sich nicht als ein einzelnes JavaScript-Zeichen darstellen lassen, sondern mit Hilfe der UTF-16-Codierung durch zwei Zeichen dargestellt werden.

Syntax

zeichenkette = String.fromCodePoint(code1, code2, ...);

  • code1, code2, ...: Eine oder mehrere Unicode Codepoint-Nummern, aus denen eine Zeichenkette erstellt werden soll.
Beachten Sie: fromCodePoint() ist eine Methode des globalen Objekts String und muss daher auf diesem Objekt aufgerufen werden.

Die Methode fromCodePoint hat gegenüber fromCharChode den Vorteil, dass man nicht die Codierungsregeln für UTF-16 Zeichenketten kennen muss, um Unicode-Zeichen außerhalb der BMP (Basic Multilingual Plane) erstellen zu können.

Anwendungsbeispiel

Beispiel ansehen …
  const gruß = String.fromCodePoint(72, 97, 108, 108, 111, 32, 128512);
  const ausgabe = document.querySelectorAll("#ergebnis p");
  ausgabe[0].textContent = gruß;
  ausgabe[1].textContent = `Das sind ${gruß.length} Zeichen`;
Im Beispiel wird mit String.fromCodePoint() die Zeichenkette "Hallo 😀" erzeugt und in der Variablen gruß gespeichert. Die Codepunkte 72, 97, 108 und 111 entsprechen den Buchstaben H, a, l und o im Unicodeblock Basis-Lateinisch[1]. Die 32 entspricht der Leerstelle und 128512 ist im Unicodeblock Smileys[2] ein freundlich lächelndes Gesicht 😀.
Die Ausgabe des Ergebnisses erfolgt in p Elemente, die in einer Section mit der ID 'ergebnis' stehen. Klicken Sie auf „ausprobieren“, um das vollständige Beispiel zu sehen.
Beachten Sie: Obwohl die erzeugte Zeichenkette nur aus sieben Codepunkten zusammengesetzt ist, ermittelt JavaScript ihre Länge als 8. Der Smiley benötigt zwei JavaScript-Zeichen, die sogenannten Surrogat-Codes.

Weblinks

Referenzen

  1. Wikipedia: Unicodeblock 0000-007F: Basis-Lateinisch
  2. Wikipedia: Unicodeblock 1F600-1F64F: Smileys