Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaute in JavaScript darstellen funktioniert nicht.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umlaute in JavaScript darstellen funktioniert nicht.

    Ich habe vor, die Umlaute eines Textstrings in JavaScript, in dem die Umlaute als Fragezeichen dargestellt werden, mit folgender Funktion richtig darzustellen:

    Code:
    //"Testet" String auf Umlaute und ersetzt diese. 
        function testFunction(text) {
    
              console.log(text);
    
              const length = text.length;
              const result = new Uint8Array(length);
              for (let i = 0; i < length; i++) {
                const code = text.charCodeAt(i);
                const byte = code > 255 ? 32 : code;
                result[i] = byte;
              }
    
              const bytesString = String.fromCharCode(...result)
    
              return bytesString;
        }
    Hier der input: "<div onclick="toggleSite(5)">F�nfter Thread</div><div onclick="toggleSite(6)">H�ber Thread</div>"

    Das klappt aber nicht, denn nun werden die Umlaute nicht mehr als Fragezeichen, sondern gar ned mehr dargestellt.

    Nun meine Frage - gibt es eine Möglichkeit, als ? dargestellte Umlaute wieder herzuzaubern? Ist meine Funktion überhaupt der korrekte Ansatz?

    Vielen vielen Dank im Voraus.

  • #2
    https://php-de.github.io/jumpto/utf-8/ -> "Situation 2".

    Da stehen auch die "Lösungen" dabei.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Du solltest die Ursache beheben und dafür sagen, dass erst gar keine defekte Zeichen in einen String rein kommen. Wenn du da irgendwas manuell reparieren musst, ist das ein Anzeichen dafür, dass da etwas gewaltig schief läuft.

      Kommentar


      • #4
        Jetzt habe ich es kapiert - das macht man einfach mit escape() und unescape(). Vielen Dank für Eure Hilfe!

        Kommentar


        • #5
          Zitat von AFX Beitrag anzeigen
          Jetzt habe ich es kapiert - das macht man einfach mit escape() und unescape().
          Nein, hast du nicht. Außerdem sind escape() und unescape() veraltete Funktionen, die nicht mehr verwendet werden sollten.

          Aber es ist eh irrelevant, weil es muss nichts escaped werden, um Umlaute korrekt darzustellen. Du solltest immer noch die Ursache für das Problem lösen und nicht an den Symptomen herum operieren.

          Kommentar


          • #6
            Siehe auch den Link in Beitrag #2.

            Kommentar

            Lädt...
            X