Ankündigung

Einklappen
Keine Ankündigung bisher.

Kleineres Kodierungsproblem (mal wieder)

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

  • Kleineres Kodierungsproblem (mal wieder)

    Hallo,

    ich habe (mal wieder) ein kleineres Kodierungsproblem.
    Ich habe französische Wörter in einer .txt-Datei, diese ist ANSI-kodiert und die entsprechenden Accents werden auch richtig dargestellt beim direkten aufrufen.

    Ich suche allerdings mit dem simple_html_dom parser nach den Wörtern. (es handelt sich als auch um html-Code, der in dieser Datei ist). Wenn ich bestimmte Wörter dann vom PHP-Skript(utf- ausgeben lasse, werden bestimmte sonderzeichen und accents nicht dargestellt.

    Beispiel:


  • #2
    Diese Funktion sollte dir helfen können:

    http://php.net/manual/en/function.mb...t-encoding.php
    PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

    Kommentar


    • #3
      Hallo,

      hab es so probiert:
      PHP-Code:
      $html mb_convert_encoding(file_get_contents("vokabeln.txt"), "UTF-8");
      $html file_get_html($html); 
      Resultat:

      Code:
      Warning: file_get_contents(<table cellspacing="0" (..)<td class="l2">was</td></tr> &l in /homepages/25/d98581068/htdocs/franz/simple_html_dom.php on line 70
      
      Fatal error: Call to a member function find() on a non-object in /homepages/25/d98581068/htdocs/franz/index.php on line 15
      Habe die fehlermeldung gekürzt, sie enthält ansonsten den gesamten HTML-Code, wobei ALLE Sonderzeichen falsch dargestellt werden.

      Kommentar


      • #4
        Ich nehme mal an, file_get_html erwartet als Parameter einen Dateinamen und keinen Dateiinhalt? Logischer wäre wohl etwas im Sinne von:

        PHP-Code:
        $data file_get_html('vokabeln.txt');
        $data mb_convert_encoding($data'UTF-8''ISO-8859-1'); // oder welches auch immer 
        Kenne den genauen Kontext aber natürlich nicht.
        PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

        Kommentar


        • #5
          Es sollte auch laut dokumentation mit einem string gehen:

          // Create a DOM object from a string
          $html = str_get_html('<html><body>Hello!</body></html>');

          // Create a DOM object from a URL
          $html = file_get_html('http://www.google.com/');

          // Create a DOM object from a HTML file
          $html = file_get_html('test.htm');
          alxy

          Edit: ich seh´s grade selbst... die funktion muss dann anders lauten *blush*
          Edit2: Funktioniert jetzt zwar wieder, aber die Sonderzeichen werden noch fälscher ( :P ) dargestellt. Beispiel
          connaĂŽtre

          Kommentar


          • #6
            Du müsstest das genaue Encoding der Eingabedaten herausbekommen. Wenn du magst, poste mal einen Hex-Dump des Inhalts oder von Teilen des Inhalts. (Funktion dafür etwa hier: http://www.php-resource.de/forum/657065-post17.html) Dann können wir es dir sicher recht einfach herausfinden, wenn du es selbst nicht schaffst. (Muss aber natürlich die entsprechenden problematischen Zeichen enthalten.)

            Theoretisch kann man es auch aus der gezeigten Fehldarstellung herleiten, aber zu kognitiven Leistungen dieses Ausmaßes fühle ich mich gerade nicht berufen. Hehe.
            PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

            Kommentar


            • #7
              Also Notepad++ zeigt mir bei Kodierung ANSI an, aber da tut es glabe ich bei allen dateien erstmal per default. (Ich habe die txt selber erstellt, also den html code dort eingefügt. I ch vermute deshalb, dass es ANSI-kodiert sein wird.)

              Ansonsten werde ich auchmmal deine funktion testen.

              alxy

              Kommentar

              Lädt...
              X