mail et encodage, le retour !

Ça eut marché mais ça marche plus.

J'ai déjà posté sur ce problème récemment. Voilà le souci :

Dans ma page contact j'ai ça :

         $headers ='From: <'.$vEmail.'>'."\n";
         $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit';

Quand je regarde l'entête du message reçu j'ai ça :

MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: QUOTED-PRINTABLE

Mon courielleur (Thunderbird) affiche par défaut en iso-8859-1

et pourtant

éèêàô

me donne :

éèêÃô

Et si je demande de m'afficher en UTF-8, j'ai ça :

éèêàô

Donc je demande du iso-8859-1, je reçois à priori du iso-8859-1 mais en fait c'est du UTF-8 ???

Bref j'y pige plus rien !

Précision : même problème sur 2 sites (Spip 1.9.1), les 2 en UTF-8

Merci de vos conseils

Jean-Christophe Villeneuve a écrit :

Ça eut marché mais ça marche plus.

J'ai déjà posté sur ce problème récemment. Voilà le souci :

Dans ma page contact j'ai ça :

         $headers ='From: <'.$vEmail.'>'."\n";
         $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit';

Quand je regarde l'entête du message reçu j'ai ça :

MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: QUOTED-PRINTABLE

Mon courielleur (Thunderbird) affiche par défaut en iso-8859-1

et pourtant

éèêàô

me donne :

éèêÃô

Et si je demande de m'afficher en UTF-8, j'ai ça :

éèêàô

Donc je demande du iso-8859-1, je reçois à priori du iso-8859-1 mais en fait c'est du UTF-8 ???

Bref j'y pige plus rien !

Précision : même problème sur 2 sites (Spip 1.9.1), les 2 en UTF-8

Merci de vos conseils

Hello,

Ce que tu essayes d'envoyer par mail, ce sont sans doute des $_POST que tu récupères d'un formulaire, et que si par défaut tes valeurs transfèrent en UTF-8 cqfd ,elles se retrouvent en utf8 dans ton mail.
Afin de palier à cela, quand tu prépares le corps de ton mail fait un utf8_decode sur tes variables, un truc du genre donc :
$monMessage = "Vous êtes monsieur".utf8_decode($_POST['toto']);

Tu peux essayer autre chose aussi mais je ne sais pas si ça marche, c'est de préciser dans ta balise form l'encodage que tu souhaite, ça donnerait qq chose comme ça :
<form method="post" accept-charset="iso-8859-1" action="traitement.php">
....
</form>

Cordialement,
Mike

Mike LECOMTE a écrit :

Jean-Christophe Villeneuve a écrit :

Ça eut marché mais ça marche plus.

J'ai déjà posté sur ce problème récemment. Voilà le souci :

Dans ma page contact j'ai ça :

         $headers ='From: <'.$vEmail.'>'."\n";
         $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit';

Quand je regarde l'entête du message reçu j'ai ça :

MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: QUOTED-PRINTABLE

Mon courielleur (Thunderbird) affiche par défaut en iso-8859-1

et pourtant

éèêàô

me donne :

éèêÃô

Et si je demande de m'afficher en UTF-8, j'ai ça :

éèêàô

Donc je demande du iso-8859-1, je reçois à priori du iso-8859-1 mais en fait c'est du UTF-8 ???

Bref j'y pige plus rien !

Précision : même problème sur 2 sites (Spip 1.9.1), les 2 en UTF-8

Merci de vos conseils

Hello,

Ce que tu essayes d'envoyer par mail, ce sont sans doute des $_POST que tu récupères d'un formulaire, et que si par défaut tes valeurs transfèrent en UTF-8 cqfd ,elles se retrouvent en utf8 dans ton mail.
Afin de palier à cela, quand tu prépares le corps de ton mail fait un utf8_decode sur tes variables, un truc du genre donc :
$monMessage = "Vous êtes monsieur".utf8_decode($_POST['toto']);

Après avoir laissé de côté un moment, j'en remets une couche.
D'abord, merci encore Mike car je crois avoir oublié ces remerciements
Cette méthode fonctionne bien, je reçois le message tout bien comme il faut.
Me reste un dernier petit souci : Je renvoie une page après le submit qui reprend le message. et je voudrais le réencoder en UTF8
J'avais ça
    echo '<br /><li>Message : <br /><br /><span class="valeur">' . $vMessage."</span></li></ul>\n";
qui m'affiche le message avec de jolis ???

J'ai donc essayé ça
        echo '<br /><li>Message : <br /><br /><span class="valeur">' . $vMessage=encode_utf8($vMessage) ."</span></li></ul>\n";
mais je n'ai plus rien d'affiché

Quelqu'un peut me donner la bonne syntaxe ou me dire quoi faire d'autre
(didiou, le php, c'est pas mon truc :-[ )