Problème avec l'affichage des caractères encodés
katsuo49
Messages postés
330
Date d'inscription
Statut
Membre
Dernière intervention
-
katsuo49 Messages postés 330 Date d'inscription Statut Membre Dernière intervention -
katsuo49 Messages postés 330 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Je ne suis pas un débutant en web du tout, je vous le dis avant d'avoir les questions de base :
mon charset est en utf-8
mon encodage fichier est en uft-8
le navigateur reçoit bien de l'utf-8
ma bdd c'est de l'utf-8
Mon problème c'est que les caractères html (comme é) ne sont pas interprété mais affiché tels quel, quand le texte provient de la base de données.
Par exemple si on encode é on obtient é dans le code mais "é" affiché
et bien là j'ai "é" d'affiché.
J'ai remarqué ça avec les fonctions htmlentities et htmlspecialchars de php et c'est la première fois que j'ai ce genre de problème. j'ai essayé d'appliquer les fonctions à la lecture et/ou à l'écriture de la bdd et j'ai toujours ce résultat
Merci d'avance pour tout aide !!
Asus X52Je : ArchLinux + OpenBox
Je ne suis pas un débutant en web du tout, je vous le dis avant d'avoir les questions de base :
mon charset est en utf-8
mon encodage fichier est en uft-8
le navigateur reçoit bien de l'utf-8
ma bdd c'est de l'utf-8
Mon problème c'est que les caractères html (comme é) ne sont pas interprété mais affiché tels quel, quand le texte provient de la base de données.
Par exemple si on encode é on obtient é dans le code mais "é" affiché
et bien là j'ai "é" d'affiché.
J'ai remarqué ça avec les fonctions htmlentities et htmlspecialchars de php et c'est la première fois que j'ai ce genre de problème. j'ai essayé d'appliquer les fonctions à la lecture et/ou à l'écriture de la bdd et j'ai toujours ce résultat
Merci d'avance pour tout aide !!
Asus X52Je : ArchLinux + OpenBox
A voir également:
- Problème avec l'affichage des caractères encodés
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Caractères spéciaux mac - Guide
1 réponse
Bonjour,
:ma bdd c'est de l'utf-8
euh c'est pas que ça mais si vous allez par là: http://wiip.fr/content/choisir-le-bon-interclassement-mysql-pour-utf-8
Et regardez à avoir comme 'collation' le bon jeu de caractère pour votre hamp texte:
http://dev.mysql.com/doc/refman/5.0/fr/charset-mysql.html
:Par exemple si on encode é on obtient é dans le code mais "é" affiché
et bien là j'ai "é" d'affiché.
là j'ai rien compris, pareil non ? Si vous utilisez htmlentiies c'est normal que vous ayez &ecaute; et c'est plus correct et performant que l'utf 8 puisque que c'est le codage HTML donc le meilleur qu'il soit et que du coup pas besoin de se préoccuper de l'encodage du texte.
Pour info:
http://www.commentcamarche.net/contents/489-caracteres-speciaux-html
Ce sont bien des entités html correspondant au ascii et palliant au fait qu'il n'y ait pas certains caractères (maudits anglophones).
:ma bdd c'est de l'utf-8
euh c'est pas que ça mais si vous allez par là: http://wiip.fr/content/choisir-le-bon-interclassement-mysql-pour-utf-8
Et regardez à avoir comme 'collation' le bon jeu de caractère pour votre hamp texte:
http://dev.mysql.com/doc/refman/5.0/fr/charset-mysql.html
:Par exemple si on encode é on obtient é dans le code mais "é" affiché
et bien là j'ai "é" d'affiché.
là j'ai rien compris, pareil non ? Si vous utilisez htmlentiies c'est normal que vous ayez &ecaute; et c'est plus correct et performant que l'utf 8 puisque que c'est le codage HTML donc le meilleur qu'il soit et que du coup pas besoin de se préoccuper de l'encodage du texte.
Pour info:
http://www.commentcamarche.net/contents/489-caracteres-speciaux-html
Ce sont bien des entités html correspondant au ascii et palliant au fait qu'il n'y ait pas certains caractères (maudits anglophones).
Le coup de l'affichage des caractères je sais comment fonctionne ce mécanisme et je sais que du coup l'encodage "n'a plus d'importance" si on encode les caractère spéciaux en html mais mon problème c'est qu'ils sont pas affiché comme il devrait.
En gros (vu que j'ai pas été clair apparemment)
- si dans le code j'ai un "é" à l'affichage j'ai "é" logique
- si dans mon code je mets manuellement "é" à l'affichage j'ai "é"
si j'utilise la fonction htmlspecialchars ou htmlentities sur une chaine contenant un "é" à l'affichage j'ai un "é"
si j'utilise la fonction htmlspecialchars ou htmlentities sur une chaine contenant un "é" à l'affichage j'ai un "é" et non "é" comme dans les autres cas.
Je sais que du coup je devrais avoir "é" dans le code source et "é" sur la page or ce n'est pas le cas dans le cas où la chaîne provient de la base de données.