Probléme d'affichage de caractéres é,è et à dans un site et dans un webmail

Résolu
cs_djyac Messages postés 4 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 juin 2008 - 7 avril 2008 à 01:32
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 7 avril 2008 à 08:14
Salut aidez moi svp!!!
j'ai un probléme de l'affichage des caractéres  é, è et à  je ne sais pas pour quoi  quand on envoi un mail via  un web mail ou bien si on heberge  dans ifrance.com  le é devient (é )  et le è (è) de vient   et le à devient (Ã).
merci d'avance.
A voir également:

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
7 avril 2008 à 06:33
Salut,

Pour cette question récurrente, je ne vais pas faire très original et sortir à peu de choses près, la même réponse que les 250 000 fois que la question a été posée.
C'est un problème d'encodage des caractères.

Sur un site qui n'est pas à toi, tu peux essayer, dans ton navigateur, de changer l'encodage utilisé pour afficher la page. Dans Firefox, c'est Affichage > Encodage des caractères > ... ?

Si c'est ISO-8859-1 ou -15, essaie avec UTF-8. Sinon, l'inverse.

Pour un site que tu héberges chez iFrance, c'est de ton devoir de faire attention à l'encodage des caractères dans tes pages.
Utilise une balise META, ou dans la déclaration xml si tu affiche du XHTML 1.x.

Pour les caractères affichés via PHP, utilise une des fonctions utf8_encode() et utf8_decode()

Fais attention également à l'encodage utilisé par ton éditeur de texte : s'il enregistre les fichiers en UTF-8 et que ta page doit s'afficher en ISO-8859-1 (ou -15), ça n'ira pas. Pareil dans l'autre sens. C'est là qu'interviennent justement les deux fonctions précédemment citées.

Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 avril 2008 à 08:14
Hello,

je vais surrenchérir par rapport à ce que te dit Neige.
Bon déjà, un tuto sur l'encodage serait une bonne chose je pense, faudra y penser un de ces 4...!
L'encodage, c'est complexe. Même quand on sait ce que l'on fait ;-)
Dans un site php, il y a généralement 3 vecteurs :
l'encodage de la page web au niveau des headers
l'encodage de l'éditeur avec lequel on développe le site
l'encodage de la base de données que l'on utilise (si on en utilise une)
Et quand on envoie des mails, éventuellement, l'encodage des clients webmail, mais là, on a généralement peu de contrôle

Le plus simple est de s'assurer que tous ces "medias" utilisent le même encodage.
Les deux encodages les plus répandus sont UTF-8 et ISO-8859-1. Et un autre truc à savoir, c'est que PHP bosse essentiellement, par défaut, en ISO-8859-1 et qu'on découvre parfois que certtaines fonctions peuvent prendre un autre encodage  en paramètre (je dis ça parce que je l'ai découvert il y a peu avec htmlentities, htmlspecialchars et consors).
Evidemment, le choix à faire au niveau de l'encodage dépend esentiellement d'une chose : ton site est-il à vocation internationale ou non. Si c'est non, tu peux sans doute décider de tout passer en ISO, cela sera plus simple à grer (vu que c'est le paramétrage par défaut pour nos logiciels, en général). Mais il faut faire attention que ton hébergeur n'ait pas paramétré la base de données en UTF-8 par défaut. Ce qui est parfois le cas (voire souvent).
utf8_encode() et utf8_decode() switchent uniquement entre UTF-8 et ISO-8859-1, pour un autre encodage, ça ne conviendra pas, et il faudra alors se tourner vers iconv().

Personnellement, j'ai tendance aujourd'hui à plus bosser en UTF-8. Mais ça ne va pas sans poser quelques problèmes parfois...

Ah, autre chose à savoir : la plupart des flux xml que tu trouveras sur le net seront, eux, encodés en UTF-8, et surtout, le truc à la mode très utilisé, XMLHTTP (Ajax), travaille en UTF-8. Il faut donc penser à décoder quand on renvoie les données si on bosse en ISO-8859-1 (ou 15 en effet).

Chez toi, le é qui devient é , ça ressemble plus à de l'UTF-8 qui serait affiché en ISO-8859-1*. Donc tu dois avoir ta base de données en UTF-8, à mon avis.
3
Rejoignez-nous