PROJET AUTOBLOG


Shaarli - Les petits liens d'Alda

Site original : Shaarli - Les petits liens d'Alda

⇐ retour index

php - basename() fail when file name start by an accent - Stack Overflow - Bookmark Bronco - Le Hollandais Volant

samedi 16 janvier 2016 à 16:55
La vraie solution quand même c'est d'arrêter de bosser avec des encodings antédiluviens et d'utiliser de l'utf-8 partout.

Donc la vraie solution elle est dans le bug #62119 de PHP qui est sur la page de stackoverflow : https://bugs.php.net/bug.php?id=62119

« The problem seems to occur when running basename on a string that have a multibyte char as the first char when LC_TYPE is set to POSIX. »

Donc on gère correctement la locale sur son serveur. Si on peut pas parce qu'on est sur un mutu on met l'internal encoding à UTF-8 avec mb_internal_encoding et quand on reçoit une chaine extérieur sur laquelle on a pas prise, la première chose qu'on fait c'est la convertir en utf-8.

Et comme ça on peut arrêter de dire des trucs débiles comme « Faut jamais donner des accents aux noms de fichiers (ni d’espaces, ni de majuscules) ! » ou bien « ça va être encore plus drôle quand les fichiers et les URI auront des noms en Grec ou en Cyrillique »

Justement parce que quand on est pas un crétin européano-centré, on se rends bien compte que les 3/4 de la planète savent gérer les caractères qui se trouvent en dehors de l'ASCII ou du latin-9.
(Permalink)