Situation 1 - En local sur serveur Apache (Situation "normale" !)
Editeur de code PHPEdit 3.6 - encodage des pages unicode utf-8
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 les pages :
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 !!!!
Toutes les données accentuées en provenance du code comme de la base de données sont affichées correctement.
L'instruction
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 - Serveur distant Hébergeur mutualisé 1&1(...que je ne comprends pas
Le serveur travaille en PHP5 - Bases de données MySQL -
Transfert du site précédent en ftp.
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édentes dans un fichier au format SQL à l'aide PHPMyAdmin, et en les important à l'aide de ce même fichier en SQL chez l'hébergeur toujours à l'aide de PHPMyAdmin. Les données relues paraissent toutes correctes et identiques aux précédentes.
Comme précédemment l'instruction
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 par : "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 à cet endroit j'ajoute une instruction
l'affichage est correct tant que je travaille sur le serveur de mon hébergeur.
Mais ce même code testé en local affiche au contraire des "é" prouvant qu'Apache ne retrouve plus es petits !
Mon navigateur (Firefox en général, mais tests faits aussi sur IE) interrogé au menu "Affichage => encodage de la page" me dit bien toujours qu'il interprète des pages utf-8 !!!!
Auriez-vous une idée de l'endroit où je me plante ?
Modifié par softdaemon (15 Jun 2010 - 11:43)
Editeur de code PHPEdit 3.6 - encodage des pages unicode utf-8
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 les pages :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
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 !!!!
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 - Serveur distant Hébergeur mutualisé 1&1(...que je ne comprends pas
Le serveur travaille en PHP5 - Bases de données MySQL -
Transfert du site précédent en ftp.
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édentes dans un fichier au format SQL à l'aide PHPMyAdmin, et en les important à l'aide de ce même fichier en SQL chez l'hébergeur toujours à l'aide de PHPMyAdmin. Les données relues paraissent toutes correctes et identiques aux précédentes.
Comme précédemment 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 par : "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 à cet endroit j'ajoute une instruction
$code = mb_detect_encoding($data);
l'affichage est correct tant que je travaille sur le serveur de mon hébergeur.
Mais ce même code testé en local affiche au contraire des "é" prouvant qu'Apache ne retrouve plus es petits !
Mon navigateur (Firefox en général, mais tests faits aussi sur IE) interrogé au menu "Affichage => encodage de la page" me dit bien toujours qu'il interprète des pages utf-8 !!!!
Auriez-vous une idée de l'endroit où je me plante ?
Modifié par softdaemon (15 Jun 2010 - 11:43)