Problème d'affichage des accents ASCII

Résolu
tetranima Messages postés 18 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 21 septembre 2013 - 10 juin 2011 à 13:00
tetranima Messages postés 18 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 21 septembre 2013 - 10 juin 2011 à 14:51
Bonjour,

J'ai une fonction qui récupère un texte d'un formulaire POST et qui envoie ce texte par mail.

Le souci que je rencontre est que les accents n'apparaissent pas. un losange noir avec un point d'interrogation(�) les remplace.

Le mail est envoyé par phpmailer en mode "plain/text" et utilise l'encodage "utf_8".

J'ai fait un "mb_detect_encoding" sur la chaîne qui pose problème. Il semble qu'elle soit en ASCII.

J'ai fait un test en mettant phpmailer en iso-8859-1, et là, la chaine s'affiche bien, mais le rest qui etait en utf-8 non.

J'ai essayé de convertir ma chaine en utf-8 via "mb_convert" "utf8_encode" "iconv", rien n'y fait, la chaîne reste en ascii et ne veut pas changer. (je fais un "mb_detect" après la conversion)

1 réponse

tetranima Messages postés 18 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 21 septembre 2013
10 juin 2011 à 14:51
Problème résolu.

J'ai appliqué ces deux fonctions sur la chaîne qui posait problème :

$string = utf8_encode(html_entity_decode($string));


Apparemment, les fonctions de conversion ne fonctionnaient pas pour convertir des entités html du style é dans un autre format que ascii (je ne vois pas prkoi, mais bon).
Du coup, un ptit coup de html_entity_decode() pour remettre les vrais caractères, puis utf8_encode() et le tour est joué.
3
Rejoignez-nous