Se connecter avec
S'enregistrer | Connectez-vous

Le merveilleux monde de l'encodage et des accents...

Dernière réponse : dans Programmation

Bonjour ,

Suite à plusieurs scripts tout fait différemment et passant par html,php et mysql...
J'ai découvert que les accents sont un gros problème pour moi... je ne comprends pas bien les encodage je crois...
Voilà : lorsque je met une page html en utf8 et que je fait cette ligne :
  1. <?php echo htmlentities("é"); ?>

cela me sort un beau petit é ...
htmlentities n'est pas supposé transformer les "é" en é?
Y'a t'il une solution générale pour les accents à travers mysql, php et html.
J'ai l'habitude de mettre l'encodage de mes pages en utf8, c'est une bonne pratique?
Quels sont les pratiques que vous exercez?

Merci beaucoup !
Lassé par la pub ? Créez un compte

Meilleure solution

Expert Programmation

Mes tables restent en latin_swedish_ci. L'encodage n'a pas d'impact sur la rapidité d'un script, à mon avis, ou alors extrêmement faible (petit ralentissement par exemple dans php avec le passage des fonctions utf8_encode/decode).

Il faut choisir l'encodage qui te permet de retranscrire les caractères dont tu as besoin. Libre à toi de le choisir, en prenant garde qu'il soit compatible avec tes langages de programmation et les interfaces externes que tu peux utiliser (échanges de données avec d'autres sites et/ou logiciels).
Expert Programmation

Pour le moment, PHP 5 et précédents ne travail qu'en encodage iso, pas en encodage utf8. Ce sera le cas pour la version 6, qui devait arriver... un jour.

L'usage de l'utf8 n'a de sens que si le site utilise de façon régulière des caractères non présent dans un encodage iso (latin1 par ex). C'est le cas des sites multilingues dans des alphabets différents. Sinon, assez peu d'intérêt.

Le passage mysql <=> php <=> html est toujours problématique. Il faut user et abuser de fonctions de secours présentes dans php pour espérer s'en sortir. Par ex : utf8_encode et utf8_decode. Et même là, c'est loin d'être évident, notamment au niveau de la récupération des données d'un formulaire et devant être stockées dans mysql...

Pour le moment, je me limite à un encode ISO8859-15, qui est largement suffisant pour des sites utilisant des caractères latins.

Ceci n'est que mon avis et n'engage que moi. D'autre pourront peut-être te donner d'autre explications et d'autres avis :) 

marsien a dit :
Pour le moment, PHP 5 et précédents ne travail qu'en encodage iso, pas en encodage utf8. Ce sera le cas pour la version 6, qui devait arriver... un jour.

L'usage de l'utf8 n'a de sens que si le site utilise de façon régulière des caractères non présent dans un encodage iso (latin1 par ex). C'est le cas des sites multilingues dans des alphabets différents. Sinon, assez peu d'intérêt.

Le passage mysql <=> php <=> html est toujours problématique. Il faut user et abuser de fonctions de secours présentes dans php pour espérer s'en sortir. Par ex : utf8_encode et utf8_decode. Et même là, c'est loin d'être évident, notamment au niveau de la récupération des données d'un formulaire et devant être stockées dans mysql...

Pour le moment, je me limite à un encode ISO8859-15, qui est largement suffisant pour des sites utilisant des caractères latins.

Ceci n'est que mon avis et n'engage que moi. D'autre pourront peut-être te donner d'autre explications et d'autres avis :) 

Est-ce que tu met les tables de tes base de données MYSQL en utf8 ou tu les laisse par défaut?
Existe-t-il des normes à ce sujet ou c'est laissé libre à nous?
Quel est l'avantage de travailler avec un encodage ou un autre , cela change la rapiditée?

Merci beaucoup!
Lassé par la pub ? Créez un compte