8722 sujets

Développement web côté serveur, CMS

Bonjour,

J'utilise la fonction scandir qui retourne un tableau à une dimension contenant les noms de tous les fichiers / dossiers contenu dans le répertoire passé en paramètre. Lorsque je j'utilise ce tableau et que j'en affiche le contenu, un problème d'encodage apparaît en fonction de l'OS sur lequel est interpreté le script. En effet, sur Windows les noms contenant des caractères à problèmes (accents et compagnie) ne sont pas bien encodés, et sur OSX je ne constate aucun problème.

Sachant que le fichier du script est encodé en UTF-8, je ne peux que déduire que Windows encode les noms des fichiers / dossiers en ISO dans son système et OSX en UTF-8.

Comment résoudre ce souci sans avoir à réadapter le script, sachant que je ne peux savoir sur quel OS tournera le serveur qui hébergera le site?
Salut,

J'ai eu des soucis avec l'encodage sous Windows aussi, j'étais obligé d'encoder en UTF-8 avec BOM, car sans BOM, c'était traité comme ANSI.
a écrit :
sachant que je ne peux savoir sur quel OS tournera le serveur qui hébergera le site?




if(DIRECTORY_SEPARATOR=="/")
echo "nux/mac";// un Iserver je connait pas trop xD
else
echo "windaube";
Bonjour,

Merci pour vos réponses.

J'aurais bien voulu que le fait de convertir en UTF-8 avec BOM me débarrasse de ce problème, mais ce n'est pas le cas. Pire, je me retrouve avec des soucis sur OSX aussi.

Le test que ilar m'a conseillé aurait pu être bien, si je n'étais pas obligé de répliquer trop souvent le test (car encoder une seule fois en entrée n'était pas possible dans ce cas).

Bref, sachant que la majorité des serveurs Web sont sur Linux, je vais me contenter d'en faire l'adaptation. Et dans le pire des cas, je change pas d'hébergeur à chaque matin.

Merci pour votre contribution.
Modifié par Anymah (10 Mar 2013 - 11:09)
C'est le filesytem qui est en cause, regarde du coté des fonctions php iconv pour detect et translate