J’ai des ? à la place des caractères accentués…
Classique des caractères latins et des extractions de bases des données UTF8 …
Le sujet a déjà été traité mais une petite synthèse ne fait pas de mal !
Le cas des au lieu des accents vient du fait que l’encodage de la page est en UTF8, mais les données extraites de la base sont encodées en latin.
Solution : avant de récupérer les données, il faut donc encoder en UTF8 les données extraites, en insérant le code suivant après la connexion MySQL :
<?php
mysql_query("SET NAMES UTF8");
?>
A l’inverse, le cas des caractères du type « étudiés » vient de ce que les données extraites de la base sont encodées en latin, mais la page les affiche en UTF8.
Solution : modifier l’attribut « charset » de la balise <meta> du header, pour demander un affichage des données en latin :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Voilà… c’est un peu rapide, mais cela résout 80% des problèmes !
Pour une étude plus complète, voir cette étude : « PHP / MySQL : comment résoudre les problèmes d’accents ? »
Bonjours,
Juste une remarque, cela n’est pas sensiblement identique ?
> l’encodage de la page est en UTF8, mais les données extraites de la base sont encodées en latin.
> les données extraites de la base sont encodées en latin, mais la page les affiche en UTF8.