PHP et mail : codage charset=utf-8
Résolu
dimi3
Messages postés
278
Statut
Membre
-
c0boleis -
c0boleis -
Bonjour,
Dans mon code d'envoi de courrier supposé contenir des lettres exotiques, j'ai mis :
A la réception du mail, j'obtiens des signes cabalistiques à la place des accents. Je me demande pourquoi mon charset=utf-8 n'a pas d'effets.
Je vous remercie de votre aide.
Dans mon code d'envoi de courrier supposé contenir des lettres exotiques, j'ai mis :
<?php ... $entete = "MIME-Version: 1.0\r\n"; $entete .= "Content-type: text/html; charset=utf-8\r\n"; ... if(!mail($vers_mail, $sujet, $message, $entete)) ... ?>
A la réception du mail, j'obtiens des signes cabalistiques à la place des accents. Je me demande pourquoi mon charset=utf-8 n'a pas d'effets.
Je vous remercie de votre aide.
13 réponses
-
J'ai trouvé : les textes du mail doivent être traités par la fonction utf8_decode() avant d'être envoyés.
-
Merci de votre réponse. Je viens de tester. Le problème d'affichage n'a pas été résolu.
-
Pourquoi mettre :
if(!mail($vers_mail, $sujet, $message, $entete))
Avec un point d'exclamation ?
Peut être faut-il spécifier tout ceci :$entete='From: "nom"<adresse@fai.fr>'."\n"; $entete.='Reply-To: adresse_de_reponse@fai.fr'."\n"; $entete.='Content-Type: text/html; charset="iso-8859-1"'."\n"; $entete.='Content-Transfer-Encoding: 8bit'; -
J'ai fait copier-coller trop long. La dernière ligne ne fait pas partie du code d'envoi du mail.
Oui, j'ai bien tout spécifié. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bon c'est peut être bizarre, mais à chaque fois que j'envoi un mail j'utilise iso et non utf-8 comme ceci :
$entete .="Content-type: text/html; charset=\"iso-8859-1\"\r\n";
Et tout fonctionne nickel-
même avec cette entête j'ai le même probleme, le passage à la ligne ne marche pas.
$entete .= "Content-type: text/html; charset=\"iso-8859-1\"\r\n";
$Sujet = " SUJET TESTE";
$Msg .= "information 1\r\n\r\n";
$Msg .= "information 2 \r\n";
$Msg .= "teste 1\r\n\r\n ";
$Msg .= "teste 2 \r\n\r\n";
mail($email, $Sujet, $Msg,$entete);
-
-
Je crois que iso-8859-1 est le code des caractères latins (européens). Mes mails à recevoir étant sensés contenir des caractères exotiques (chinois, japonais, etc...), il faut déclarer le code utf-8.
-
Ah oui d'accord,
je viens de trouver un lien qui pourrait peut être t'intéresser :
https://forum.alsacreations.com/topic-17-11560-1-Probleme-envoie-email-en-chinois.html -
-
Peut être que celui la est plus simple :
https://forums.commentcamarche.net/forum/affich-16920685-caractere-chinois-et-utf-8 -
Cette page concerne les bases de données et les pages internet. Je n'ai pas de problème de ce côté-là. Il n'y a que les mails qui me posent problème...
-
La page ou se situe l'envoi de mail est également en utf-8 ?
-
-
Bonjour,
Essayes de rajouter sa :$entete.='Content-Transfer-Encoding: 8bit';