[RESOLU] readdir [problème d'accents]

Eléphant du PHP | 65 Messages

15 mai 2016, 21:31

Bonsoir à tous,
J'ai un problème avec readdir, si le fichier comporte un accent cela va m'afficher un losange avec un point d'interrogation; je suis obligé d'utiliser utf8_encode() pour rectifier cela. Alors j'aimerais bien comprendre ce qu'il se passe... Merci.

Code : Tout sélectionner

<?php header('content-type:text/plain; charset=utf-8'); $dir = './'; if (is_dir($dir)): if ($dh = opendir($dir)): while (($file = readdir($dh)) !== false): echo $file . "\n"; // problème d'accents echo utf8_encode($file) . "\n"; // fonctionne correctement endwhile; endif; endif; closedir($dh); ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

16 mai 2016, 00:43

Bonjour,

Readdir() te renvoie le nom du fichier encodé tel que ton système d'exploitation est configuré, probablement en ISO-8859-1, et donc tu dois passer par utf8_encode() pour avoir le résultat en utf8
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 65 Messages

17 mai 2016, 09:40

Merci pour ces éclaircissements.