Posez votre question Signaler

PHP et mail : codage charset=utf-8 [Résolu]

dimi3 266Messages postés 7 novembre 2007Date d'inscription 1 avril 2011Dernière intervention - Dernière réponse le 14 déc. 2010 à 19:39
Bonjour,
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.
Lire la suite 

PHP et mail : codage charset=utf-8 »

13 réponses
Réponse
+2
moins plus
J'ai trouvé : les textes du mail doivent être traités par la fonction utf8_decode() avant d'être envoyés.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Essayes de rajouter sa :
    $entete.='Content-Transfer-Encoding: 8bit';

Ajouter un commentaire
Réponse
+0
moins plus
Merci de votre réponse. Je viens de tester. Le problème d'affichage n'a pas été résolu.
Ajouter un commentaire
Réponse
+0
moins plus
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'; 
Ajouter un commentaire
Réponse
+0
moins plus
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é.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
Ah oui d'accord,
je viens de trouver un lien qui pourrait peut être t'intéresser :
http://forum.alsacreations.com/...
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ce lien... Tout ça me parait bien compliqué !
Ajouter un commentaire
Réponse
+0
moins plus
Peut être que celui la est plus simple :
http://www.commentcamarche.net/forum/affich-16920685-caractere-chinois-et-utf-8
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
La page ou se situe l'envoi de mail est également en utf-8 ?
Ajouter un commentaire
Réponse
+0
moins plus
Oui...
Ajouter un commentaire
Ce document intitulé « PHP et mail : codage charset=utf-8 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?