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.
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.
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]);
}
}
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.
Kommentar