Emil: String.fromCharCode im Test

problematische Seite

siehe problematische Seite. Rechnet String.fromCharCode() falsch oder habe ich da irgendwo einen Denkfehler?

MFG

  1. problematische Seite

    siehe problematische Seite. Rechnet String.fromCharCode() falsch oder habe ich da irgendwo einen Denkfehler?

    Wenn der Kommentar falsch ist, kann auch der Code falsch sein!

  2. 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
    1. problematische Seite

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

      WTF?

      1. problematische Seite

        Hallo Emil,

        willst Du mir damit sagen, dass Du nicht weißt, was ich meine? Oder ist das deine Einschätzung zum Verhalten der fromCharCode Funktion?

        Rolf

        --
        sumpsi - posui - clusi