Menu

Caractères bizarre UTF-8 [Résolu]

-
Salut !
Ma page PHP est encodée UTF-8 (enregistrée en tant que).
L'entête html est :
<META CHARSET="UTF-8" />


Le problème est que si j'écris "L'été" en objet, en local, j'obtiens bien "L'été" dans le courreir avec Wamp 3.1.7 (la dernière version). Sur mon serveur distant, j'obtiens "l'été".

Or, dans le corps du message les caractères accentués sont bien corrects.

Les transformations :
$Objet=Trim(HtmlEntities($_POST["Objet"], ENT_QUOTES,"UTF-8"));
...
$Headers="from: <".$Email.">\r\n".
"reply-to: <".$Email.">\r\n".
"content-type: text/html; charset=utf-8\r\n".
"content-transfer-encoding: 8bit\r\n".
"MIME-Version: 1.0\r\n";
$Object=MB_Encode_MimeHeader(Html_Entity_Decode($Objet, ENT_QUOTES,"UTF-8"));
...
$Envoi1=Mail("***@***", $Object, $Body, $Headers);

Je ne vois pas ce qui cloche. Avant, j'étais en ISO-8859-15 et ça marchait du tonnerre que ce soit sur le serveur distant ou la vieille version 2.5 de Wamp. Merci pour votre aide.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
25218
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2019
1944
0
Merci
Bonjour,

Commence par vérifier tout ce qui se trouve ici :
http://www.commentcamarche.net/faq/47069-html-php-caracteres-accentues-et-l-utf8
(y compris l'encodage des fichiers sources )
Commenter la réponse de jordane45
0
Merci
Vérifié, le Boc-note de Windows me dit bien que je suis en UTF-8. J'ai ajouté la commande php, niet ! Comme je le dis, en local ça marche bien, c'est juste en distant et que le sujet, pas le corps du message.
Commenter la réponse de Mayumi
0
Merci
Si je mets :
$Object=MB_Encode_MimeHeader(Html_Entity_Decode($Objet, ENT_QUOTES,"ISO-8859-15")

Sur le serveur distant, j'ai bien les caractères accentués mais en local, j'obtiens "L'?t".
jordane45
Messages postés
25218
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 avril 2019
1944 -
Je ne comprend pas pourquoi tu fais du html_entity encode et decode...
Quoi qu'il en soit, essaye d'ajouter ceci au début de ton script
/* Utilise l'encodage interne UTF-8 */
mb_internal_encoding("UTF-8");
Ca marche nickel ;) Merci
Oui j'encode les caractères en entité pour ne pas avoir de surprises comme celle-là. Difficile de lire : "l'été" ou "L'?t".
Merci encore !
Commenter la réponse de Mayumi