Dateikodierung prüfen?

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

  • Dateikodierung prüfen?

    Ich habe Probleme, rauszubekommen, mit welcher Kodierung eine bestimmte Datei kodiert worden ist.

    Ich habe eine Textdatei, die ist ISO kodiert, ich möchte dies rausbekommen, wenn ich jedoch ein mb_detect_encoding(implode("",file("meineDatei.txt")));[PHP]
    so wird immer UTF-8 zurückgegeben, was aber nicht korrekt ist, oder es ist viel mehr korrekt, aber nicht das, was ich will.

    Denn ich suche ja die Kodierung der Datei und nicht des Textes.
    SQL Injection kitteh is...

  • #2
    Re: Dateikodierung prüfen?

    Denn ich suche ja die Kodierung der Datei und nicht des Textes.
    Da gibt es keinen Unterschied, außer du schreibst eine UTF-8 BOM an den Anfang der Datei (nicht zu empfehlen, wenn es sich um PHP-Dateien handelt, die du einbindest). Wenn der Text UTF-8 Zeichen enthält, so erkennt die MB-Funktion das korrekt.
    Vielleicht kannst du etwas genauer erläutern, was du vor hast!

    Kommentar


    • #3
      Warum eigentlich nicht file_get_contents() ?

      Kommentar


      • #4
        Ich hatte UTF-8 kodierten HTML Code in eine ISO Datei gespeichert.

        Eine UTF-8 kodierte PHP Datei hat diese Datei eingelesen und ausgegeben -> Umlaute waren kaputt.
        mb_detect_encoding ergab UTF-8 und dennoch konnt eich die Umlaute nicht sehen, wenn ich den String vorher mit utf8_encode konvertiere, kann ich ihn in der UTF-8 kodierten PHP Datei echon. Meine Überlegung war ja, dass alles ISO ist, aber mb_detect_string ergibt UTF-8 :/
        SQL Injection kitteh is...

        Kommentar


        • #5
          Ich hatte UTF-8 kodierten HTML Code in eine ISO Datei gespeichert.
          Autsch!

          Den Rest versteh ich nicht so ganz. Aber anstatt da irgendwas zu workarounden, solltest du es einfach mal vernünftig machen.

          Kommentar


          • #6
            Hast du vielleicht htmlentities() auf die Datei angewendet? Das funktioniert bei UTF-8 nämlich nicht mehr so richtig und macht die Umlaute kaputt.
            Wenn du es auf einen UTF-8-String anwendest, musst du
            PHP-Code:
            $text htmlentities($textENT_COMPAT'UTF-8'); 
            schreiben oder htmlspecialchars() verwenden.
            Aber dein letzter Text lädt schon sehr zu einer gemütlichen Raterunde ein.
            Zuletzt geändert von Manko10; 13.04.2008, 22:11.

            Kommentar


            • #7
              Hm, wie gesagt, es gibt keine zwischen Schritte.

              Eine UTF-8 kodierte PHP Datei hat nur folgendes stehen

              PHP-Code:
              <?php
              header 
              ('Content-type: text/html; charset=utf-8');
              $txt =  implode("",file("text.txt"));
              echo 
              mb_detect_encoding($txt);
              echo 
              "<br />".$txt;
              ?>
              Die Textdatei beinhaltet "Überschrift" als Text, gespeichert als Iso.

              Output ist:
              Code:
              UTF8
              Ãœberschrift
              Das macht mir zu schaffen, denn eigentlich müsste doch wegen dem Header ein UTF8 String doch normal aussehen.

              Es gibt keine htmlentities oder ähnliches im Code
              SQL Injection kitteh is...

              Kommentar

              Lädt...
              X