8791 sujets

Développement web côté serveur, CMS

Bonjour, étant amené à repasser sur des développements,
je me suis rendu compte que l'un de mes collègues utilisé utf8_encode sur tout les membres de toutes les classes.
Ultérieurement je me suis rendu compte que certains fichiers n'étaient pas encodés en UTF8, je me suis donc lancé dans la conversion de tous les fichiers(la base est en utf8 le char-set aussi pour moi les fichiers PHP doivent l'être aussi).
Problème après avoir fais cela les accents étaient devenus à .
Pourtant d'un bout à l'autre tout était encodé en UTF-8....

Illumination hier soir je décide de virer ce utf8_encode et bien sûr ce matin plus de problème d'accent.

Suite à cette aventure et pour avoir une règle strict la question est la suivante quand utiliser "utf8_encode" ou ne pas l'utiliser ?
Salut,

Lorsque tu utilises des données strictement en UTF8 sur toutes tes plateformes (fichiers .php, fichiers.html, base de données, etc.) tu ne dois pas utiliser nécessairement utf8_encore/utf8_decode. Ces deux fonctions passent des chaînes en UTF8 quand, bien entendu, elles ne le sont pas à l'origine. Car contre il me semblait que lorsqu'on utilisait ce genre de fonction sur des chaînes déjà en UTF8 il n'y avait pas d'impact ...

Le mieux est vraiment de tout passer en UTF8 comme tu l'as fait, et de virer ce genre de fonctions selon moi.
C'est sûr je comprends très bien les tenants et aboutissants de cette problématique mais je cherche davantage une réponse "règle". Par exemple :
"Ne jamais utiliser utf8_encode sauf dans le cas ou l'on a pas le contrôle sur un des éléments suivant : base de donnée, encodage des fichiers, ou char-set".
Afin de ne jamais plus voir ce genre de fonction de la part de mon collègue.
Quand tu importes des données en iso-machin tu peux utiliser cette fonction, mais au sein de ta propre application tu ne devrais jamais en avoir besoin.
Modifié par jb_gfx (31 Dec 2011 - 19:25)