SPL und UTF-8

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

  • SPL und UTF-8

    Ich versuche gerade verzweifelt mit der SPL in einer UTF-8 Umgebung zu arbeiten. Ich nutze einen DirectoryIterator und lese den Dateinamen aus. Dabei werden Umlaute jedoch in Latin-1 geliefert und nicht in UTF-8.

    Kann ich das irgendwo umstellen? Oder muss ich jeden Wert erst manuell wandeln. Das wäre sehr hässlich und unnötig.

    PHP-Code:
    $directoryIterator = new DirectoryIterator(PATH $folder);

    foreach (
    $directoryIterator as $file){

            if (
    preg_match('/^(\d+)\.(\d+)\.(\d+)_(\d+)\.(\d+)_(.*)_(.*)\.(.*)/',$file->getFilename(),$matches)){
                
    //Wenn ja gewinnen wir alle Informationen daraus
                
    $fileinfo['datetime'] = mktime($matches[4],$matches[5],0,$matches[2],$matches[3],$matches[1]);
                
    $fileinfo['channel'] = $matches[6];
                
    $fileinfo['broadcast'] = $matches[7];
                echo 
    utf8_encode($matches[7]);
            }

    Nur die Echo Ausgabe ist richtig codiert. Der Rest ist Latin-1


    Ich habe mal weiter gesucht. Immer wieder stößt man auf den Hinweis dass PHP und UTF-8 keine guten Freunde sind.

    Nun stellt sich mir die Frage, was nimmt man denn dann?

    Eclipse bietet mir ja nur CP1252, ISO-8859-1 und UTF-8.

    Eigentlich wollte ich schon UTF-8 nutzen, aber die vielen schreckensberichte schrecken mich gerade ab. ISO-8859-1 ist mit dem € nicht gerade kompatibel. Und CP1252 ist ja nun nen Windows eigenes Format.
    Zuletzt geändert von CC84; 30.12.2007, 18:12.

  • #2
    Hi.
    was hat bitte SPL mit UTF-8 gemeinsames?
    die problem mit utf-8 wird nicht mehr existieren, wenn alle betriebssysteme als localer Zeichensatz utf-8 nutzen.
    PHP ist nicht daran schuld, dass die Dateinamen bei deinem system nicht im utf-8 abgespeichert sind.
    also machst du die Umwandlung in ein anderen Zeichensatz von Hand, auch wenn es dir hässlich vorkommt.
    Slava
    bituniverse.com

    Kommentar


    • #3
      ich wusste nicht, dass das vom OS so durchgereicht wird. Sorry. Dachte das läge eben an der SPL. Das heisst aber auch, ich muss um auf eine bestimmte Datei zuzugreifen die Umwandlung wieder umkehren?

      Kommentar


      • #4
        noch besser die Dateien ohne umlauten zu benennen, dann brauchst du auch keine utf-8 sorgen zu machen, da utf8 mit englischen Buchstabensatz kompatibel ist.
        Slava
        bituniverse.com

        Kommentar


        • #5
          Die Dateinamen werden von meinem Mediaportal erzeugt, welches diese aus dem Namen der sendung erstellt. Ich habe also leider keinen Einfluss darauf.

          Kommentar


          • #6
            doch!
            du machst eine Tabelle in dem datenbank, wo du ein Name und der Pfad zu einer datei mit einem dazugehörigem und beliebigen Namen( sogar auf chinesisch mit allen dazugehörigen Zeichen) abspeicherst.

            Als alternative könntest du die Buchstaben aus utf8-Raum in einer Dateinamen als zusamensetzung von hexadezimaler darstellung von dem utf-8 zeichen abspeichern, aber das wird leider die Dateinamen sehr lang machen.
            Slava
            bituniverse.com

            Kommentar

            Lädt...
            X