Ankündigung

Einklappen
Keine Ankündigung bisher.

text-decodierung

Einklappen

Neue Werbung 2019

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

  • text-decodierung

    hi

    habe hier ein text den ich decodieren möchte , so das die umlaute und sonderzeichen ordentlich angezeigt weden.

    Beispiel-Text:

    "
    Anders als bei einer totalen verdeckt der Mond die Sonne bei einer ringförmigen Sonnenfinsternis auch im Kernbereich nicht komplett, ein heller „Feuerring“ bleibt sichtbar. Der Mond braucht morgen über eine Stunde, um die maximale Bedeckung zu erreichen, die bis zu vier Minuten dauert, und noch einmal eine Stunde, bis die Sonne wieder ganz sichtbar ist. In einem mehrere hundert Kilometer breiten Bereich ist die Sonne noch weniger verdeckt. Hier spricht man von einer partiellen Sonnenfinsternis.
    "
    es soll ne art Stingfunktion oder sowas sein, womit ich den text parsen kann. ich will aber möglichts nicht str_replace benutzen, wenn es da noch was anderes gibt.

  • #2
    so das die umlaute und sonderzeichen ordentlich angezeigt weden.
    Wo gibst Du es denn aus? Kann man da nicht einfach die "richtige" Kodierung einstellen, wie zB bei (X)HTML
    Code:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE [...]>
    <html>[...]
    oder noch besser über den entsprechenden http header?

    Kommentar


    • #3
      es geht um die umwandlung der orginalquelle, denn die zeichen sind schon so bei
      file_get_contents('WWW-LINK') so importiert worden. es sollen nicht die zeichen anders ausgegeben werden , sondern schon richtig umgewandelt werden, die daten werden später in einer DB oder Text-Datei lesbar gespeichert. wenn es da noch eine möglichkeit gibt die quelle anders auszulesen , so dass das problem nicht auftritt ist das auch eine lösung.

      die quelle ist übrigens wikipedia.

      Kommentar


      • #4
        so! habe eine teillösung!

        // Sonderzeichen umwandeln
        • $load = str_replace('ö','ö',$load); // ö

          $load = str_replace('ä','&auml;',$load); // ä
          $load = str_replace('Ä','Ä',$load); // Ä
          $load = str_replace('Ãœ','&Uuml;',$load); // ü
          $load = str_replace('ü','&uuml;',$load); // Ü
          $load = str_replace('„','"',$load); // "
          $load = str_replace('“','"',$load); // "
          $load = str_replace('–',' - ',$load); // -
          $load = str_replace('ß','ß',$load); // ß


        ich hoffe ich finde noch das Ö und eventuell andere sonderzeichen [/list]

        Kommentar


        • #5
          $load = str_replace('ä','&auml;',$load); // ä
          Du läßt es Dir also von einem html browser anzeigen?
          Dann teile diesem doch mit, dass es sich um utf8 Daten handelt.
          Code:
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE [...]>
          <html>

          Kommentar


          • #6
            hier nochmal:

            es soll keine rolle spielen ob es von einem browser angezeigt werden kann, sondern die quelle die nicht von mir ist, liefert schon die 'komischen' zeichen. also muss ich die zeichen umwandeln. da nützt mir ein browser überhaupt nix, denn es soll nur gelesen und geschrieben werden z.b. in eine datenbank oder in eine textdatei.

            ich mache file_get_contents(WWW von einer Seite) und
            erhalte dadurch die Zweichen, ob ich will oder nicht. da kann ich mich auf den kopf stellen und den brauser 100mal laden und sonstwas. ich muss die geladenen daten der die durch die quelle erzeugt wurden umwandeln.

            eigentlich wollt ich nur wissen ob es dafür eine funktion gibt, denn ich hab noch keine gefunden. sowas wie urlencode, nur eben für diese sonderzeichen.

            Kommentar


            • #7
              Ein letztes mal versuche ich es noch.
              ich mache file_get_contents(WWW von einer Seite) und
              erhalte dadurch die Zweichen, ob ich will oder nicht.
              Ja, natürlich erhälst Du diese Zeichen. Denn diese Zeichen stehen bei utf-8 für ä,ö,ü usw und die Quelle wird sicherlich auch utf-8 angekündigt haben.*
              Aber dass sie nicht so angezeigt werden, wie Du willst, liegt weder an der Quelle noch an file_get_contents, sondern an Deinem Anzeigemedium.
              Ob die Zeichen als ä,ö,ü oder als ä, ö, Ãœ angezeigt werden, hängt davon ab, ob Dein Anzeigemedium mit utf-8 klarkommt und auch mitgeteilt bekommen hat, dass die Daten in utf-8 codiert sind.
              Genauso wie mit &auml;
              Da wird doch auch nur bei html-Anzeige ein ä draus, ansonsten sind es diese 'komischen' Zeichen & a u m l ;
              Wenn Du das jetzt immer noch nicht verstanden hast, kannst Du das Problem verschieben und die utf8 Daten mit utf8_decode() in ISO-8859-1 umwandeln lassen.
              Bei html-Anzeige solltest Du dann immer noch die entsprechende Kodierung angeben. Aber Dein Texteditor wird Dir vermutlich schon ohne weitere Einstellungen die Umlaute anzeigen.


              ----
              * Wikipedia kündigt in der Tat utf-8 an. Deshalb werden die Zeichen im Browser auch "richtig" als Umlaute dargestellt.
              Dazu sendet es einmal den http header
              Content-Type: text/html; charset=utf-8
              und gibt auch im html Dokument
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              an.

              Kommentar


              • #8
                ich lass mir ja die zeichen nicht einfach so ausgeben , sondern mit htmlentities, sollte dass etwa zur falschen anzeige führen? immerhin stellt htmlentities die zeichen so um das diese auch so zu lesen sind wie sie in der quelle stehen. darüberhinaus kommt auch beim quelltextlesen das selbe ergebniss. bei der quelltextanzeige meiner daten werden mir die gleichen zeichen ausgegeben, sollte da auch mein editor versagen? ich benutze notepad++ , bei aufruf quelltext anzeigen wir automatisch der quelltext im editor angezeigt. ich könnte höchsten noch den text zur probe speichern. um zu prüfen ob es nur an der einstellung von editor und browser liegt.

                Kommentar


                • #9
                  htmlentities() beschäftigt sich zwar mit einem ähnlichen, aber doch unterschiedlichen Thema.
                  In notepad++ die Datei öffnen, danach Menü:Format, "Encode in utf-8", staunen

                  Kommentar


                  • #10
                    Das Problem wurde jetzt mit iconv() ,PHP version 5.0, gelöst!

                    Kommentar

                    Lädt...
                    X