Situation 1 : (Situation "normale" !)
Serveur Apache, MySql, MySqlAdmin fournis par EasyPHP 3.1
Base de données charset utf-8 - Interclassement pour la connexion utf8_general_ci.
Balise meta commune à toutes las pages :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Editeur de code PHPEdit 3.6 encodage unicode utf-8
Toutes les données accentuées en provenance du code comme de la base de données sont affichées correctement.
L'instruction
$code = mb_detect_encoding($data);
renvoie bien UTF8 pour les "datas" comportant des caractères accentués et ASCII n'en comportant pas, ca qui me parait normal.
Situation 2 (...que je ne comprends pas
Serveur mutualisé chez 1&1 et transfert du site précédent en ftp.
Base de données MySql. PHP 5.
En affichant le code source des pages dans le navigateur la balise meta précédente est bien présente.
Base de données vide créée pour Interclassement pour la connexion mySql en utf8_general_ci.
Tables crées en exportant structures et contenu des tables précédents au format SQL à l'aide PHPMyAdmin, et en les important en SQL chez l'hébergeur toujours à l'aide de PHPMyAdmin. Les données paraissent toutes correctes et identiques aux précédentes.
L'instruction
$code = mb_detect_encoding($data);
renvoie bien UTF8 pour les "datas" comportant des caractères accentués et ASCII n'en comportant pas, ca qui me parait normal.
Les données accentuées proposées par le code PHP qui génère la page sont correctement affichées
Mais les données accentuées provenant de la base de données sont remplacées par un losange noir avec un "?" ce que je traduis "Le navigateur attend des données en utf-8, mais en réalité vous lui envoyez données codées en ISO"
De fait si à ce moment j'ajoute une instruction
$data = utf8_encode($data);
l'affichage est correct sur le serveur de mon hébergeur.
Mais ce même code testé en local affiche au contraire des "é"
Dans les deux cas mon navigateur (Firefox en général, mais tests faits aussi sur IE) interrogé au menu "Affichage => encodage de la page" me dit bien qu'il interprète des pages utf-8 !!!!
Auriez-vous une idée de l'endroit où je me plante ?
Partager