Rolf B: String.fromCharCode im Test

Beitrag lesen

problematische Seite

Hallo Emil,

dein Denkfehler ist der übliche. Codierung vs codierter Inhalt.

Mit der JS Funktion String.fromCharCode(0x1D7C3) wurde das UTF-8-kodierte Zeichen erzeugt und per XMLHttpRequest zum Server gesendet

Nein. Ganz viele Fehler in einem Satz.

  • fromCharCode erzeugt keinen UTF-8 codierten String, sondern einen JavaScript-internen String, der UTF-16 codiert ist
  • Eingabe für fromCharCode sind nicht Codepoints, sondern UTF-16 Bytepaare
  • deswegen ist der maximale Wert für einen Eingabewert für fromCharCode 0xffff
  • eine Codierung in UTF-8 erfolgt auf der HTTP Strecke, sofern das das gewählte Encoding ist

Ruf mal in der Console auf: String.fromCharCode(0x1D7C3).length und String.fromCharCode(0x1D7C3).codePointAt(0).toString(16)

Ergebnis: 1 und d7c3. D.h. deine 1 vorneweg wurde schlicht ignoriert.

Wenn Du Codepoints in Strings umwandeln willst, dann nimm auch die Funktion, die das im Namen trägt: String.fromCodePoint. Damit geht's.

Rolf

--
sumpsi - posui - clusi