FireGlow: Parsen

Moin!

Gibt es eine Möglichkeit in Javascript oder Java Sonderzeichen zu parsen, die man in normalen "text-dateien" nicht darstellen kann?

Ein Beispiel wären geschwungene deutsche Anführungsstriche, Buchstaben aus dem griechischen Alphabeth. Dabei ist zu beachten, dass mir diese Zeichen tatsächlich in ihrer reinen Form vorliegen.

Ich suche also eine Methode die aus einem "beta" (in tatsächlicher Form) ein "&#beta;" macht und das am besten für alle Sonderzeichen die es gibt.

Ist es also möglich mit Unicode oder ähnlichem "reine" Sonderzeichen zu identifizieren und dementsprechend zu parsen?

Vielen Dank für Gedankenanstösse und Hilfen

  • FireGlow
  1. hi,

    Gibt es eine Möglichkeit in Javascript oder Java Sonderzeichen zu parsen, die man in normalen "text-dateien" nicht darstellen kann?

    Ein Beispiel wären geschwungene deutsche Anführungsstriche, Buchstaben aus dem griechischen Alphabeth.

    Warum kannst du die denn nicht darstellen?

    Du redest von "Text-Dateien" - meinst aber vermutlich eher HTML-Dokumente, oder?

    Ist es also möglich mit Unicode oder ähnlichem "reine" Sonderzeichen zu identifizieren und dementsprechend zu parsen?

    Wenn du deine Dokumente Unicode nutzen lässt, sie also bspw. gleich UTF-8-kodiert anlegst - dann kannst du darin so gut wie jedes denkbare bekannte Zeichen nutzen. Javascript ist dafür überhaupt nicht erforderlich.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Warum kannst du die denn nicht darstellen?

      Du redest von "Text-Dateien" - meinst aber vermutlich eher HTML-Dokumente, oder?

      Probier doch mal "beta" aus Word oder ähnlichen direkt in ein HTML Dokument zu kopieren und dann per Javascript zu alerten, dann siehst du was ich meine. Der wird dir entweder ein Viereck oder ein Fragezeichen alerten, im Dokument selbst wirds natürlich dennoch als "beta" dargestellt werden.

      Wenn du deine Dokumente Unicode nutzen lässt, sie also bspw. gleich UTF-8-kodiert anlegst - dann kannst du darin so gut wie jedes denkbare bekannte Zeichen nutzen. Javascript ist dafür überhaupt nicht erforderlich.

      Ja ich nutze UTF-8, das ändert aber nichts daran, dass ich diese Sonderzeichen genauso bekomme wie ich es hier schreibe. An dieser Tatsache kann ich nichts ändern.

      Daher bleibt meine Frage, kann ich Sonderzeichen innerhalb von Code irgendwie darstellen, damit ich diese dann parsen kann? Am besten mit Javascript, wobei Java auch ok wäre.

      Danke für die Gedanken

      • FireGlow
      1. hi,

        Probier doch mal "beta" aus Word oder ähnlichen direkt in ein HTML Dokument zu kopieren und dann per Javascript zu alerten, dann siehst du was ich meine.

        Das die Daten aus einer solchen Quelle stammen sollen, war in der Fragestellung nicht zu erkennen.

        Und auch jetzt ist "Word oder ähnliches" noch reichlich schwammig.

        Der wird dir entweder ein Viereck oder ein Fragezeichen alerten, im Dokument selbst wirds natürlich dennoch als "beta" dargestellt werden.

        Wenn letzteres bedeutet, dass das Zeichen als letztendlich doch wie gewünscht dargestellt wird - wo liegt dann das Problem?

        Ja ich nutze UTF-8, das ändert aber nichts daran, dass ich diese Sonderzeichen genauso bekomme wie ich es hier schreibe. An dieser Tatsache kann ich nichts ändern.

        So "genau" hast du's bisher noch gar nicht beschrieben.

        Daher bleibt meine Frage, kann ich Sonderzeichen innerhalb von Code irgendwie darstellen, damit ich diese dann parsen kann? Am besten mit Javascript, wobei Java auch ok wäre.

        Was willst du "parsen"?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hab ne Lösung gefunden:

          http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8.htm

          Ich will einfach Zeichen parsen wie z.B. das Kyllirische EF in etwas was ich verwerten kann, unicode:

          str_replace(String.fromCharCode(1060),"TESTZWECKE",deinString);

          Danke trotzdem

          Gruüßle

          1. Hallo,

            Hab ne Lösung gefunden:

            http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8.htm

            Und was soll das bringen? Das Script konvertiert ISO-8859-1 zu UTF-8. In JavaScript ist das aber i.d.R. nicht nötig.

            Wenn der JavaScript-Code als ISO-8859-1 kodiert ist, aber als UTF-8 zum Browser gesendet wird, dann kommt im Browser zur Zeichensalat an, weil der fehlertolerante UTF-8-Decoder die fehlerhaft kodierten Zeichen verschluckt bzw. durch das Ersatzzeichen U+FFFD ersetzt. Da kannst du dann auch nicht mehr mit Konvertierung nachhelfen.

            Zeig uns doch mal eine Beispielseite.

            Mathias

            --
            »No nations, no borders.«
            SELFHTML Weblog
      2. Hallo,

        Probier doch mal "beta" aus Word oder ähnlichen direkt in ein HTML Dokument zu kopieren und dann per Javascript zu alerten, dann siehst du was ich meine.

        Nö, da sehe ich das erwartete Verhalten.

        Der wird dir entweder ein Viereck oder ein Fragezeichen alerten, im Dokument selbst wirds natürlich dennoch als "beta" dargestellt werden.

        Seltsam. Wenn das eine funktioniert, also das Zeichen korrekt kodiert ist, sollte das andere auch funktionieren.

        <script> alert("β"); </script>
        <p> β </p>

        Woran kann das nun liegen? Möglich ist, dass für das Beta kein Glyph im Font enthalten ist, der zum Rendern der Schrift im alert() benutzt wird. Das halte ich aber für unwahrscheinlich, die Windows-Systemschriften sollten das alle enthalten.

        Daher bleibt meine Frage, kann ich Sonderzeichen innerhalb von Code irgendwie darstellen, damit ich diese dann parsen kann? Am besten mit Javascript, wobei Java auch ok wäre.

        Du kannst Zeichen durch Escape-Sequenzen maskieren bzw. umschreiben. \uXXXX verweist in einem String auf das Zeichen mit der hexadezimalen Unicode-Nummer XXXX. Beispielsweise \u03B2 für β.

        Im Grunde sollte diese Umschreibung aber nicht nötig sein, der Fehler muss irgendwo anders liegen. Mit »Java oder JavaScript« selbst kannst du das sicher nicht lösen. Wenn kaputter JavaScript-Code beim Browser angekommen ist, kann der auch keine korrekte Umwandlung durchführen (bzw. man kann keinen String mit JavaScript derartig umwandeln - entweder er ist korrekt, dann ist es müßig, oder er ist fehlerhaft kodiert, dann müsste man eine aufwändige Umwandlung vornehmen, für die JavaScript ungeeignet ist). Java läuft entweder serverseitig als JSP oder als Applet. Nur serverseitig könntest du Ersetzungen von Zeichen innerhalb von JavaScript durchführen.

        Mathias

        --
        »No nations, no borders.«
        SELFHTML Weblog