Caractères bizarre UTF-8

Résolu
Mayumi -  
 Mayumi -
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.
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Commence par vérifier tout ce qui se trouve ici :
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
(y compris l'encodage des fichiers sources )
0
Mayumi
 
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.
0
Mayumi
 
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".
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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");
0
Mayumi
 
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 !
0