picture picture
octobre 12, 2013 (X)HTML, PHP 1 Commentaire

J’ai des ? à la place des caractères accentués…

point d'interrogation

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 ? »

 

One Response to “J’ai des ? à la place des caractères accentués…”

One Comment

  1. Wolffen dit :

    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.

Commentaire

Name

Mail (ne sera pas publié)

Website

Laisser ces deux champs tels quels :
:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: