Php n'affiche pas les infos de la bdd si un accent est présent

Résolu
Bonjour,

J'ai donc ce code pour reprendre les informations de ma base de donnée :
<?php 
//On verifie que lidentifiant de lutilisateur est defini 
if(isset($_GET['id'])) 
{ 
        $id = intval($_GET['id']); 
        //On verifie que lutilisateur existe 
        $dn = mysql_query('select id, pseudo, date, presentation, rang, avatar from membre where id="'.$id.'"'); 
        if(mysql_num_rows($dn)>0) 
        { 
                $dnn = mysql_fetch_array($dn); 
                //On affiche les donnees de lutilisateur 
?>


Là, tout va bien. Le problème est ici :
<?php echo htmlentities($dnn['presentation'], ENT_QUOTES, 'UTF-8'); ?>


Il n'affiche rien si un "é", "è", "à", ou autre caractère de ce type est présent dans la base de donnée. Mais affiche bien les informations si aucun caractère de ce type est présent.

Que dois-je faire pour corriger cela ?

3 réponses

  1. Ca ressemble bien à un soucis d'encodage, essai de mettre les balise <meta> dans ta page , ou un header pour que tout soit encodé en UTF8
    0
    1. Ceci est pour toute les pages :
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>


      Mais le même résultat
      0
  2. fais un var_dump($dnn) pour voir ce que vaut le data quand il y a un accent et quand il y en a pas .
    0
    1. avec le var_dump j'ai ce résultat : string 'Aucune pr?sentation' (length=19)
      0
  3. Voici des informations sur la base de données :

    Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
    Interclassement pour la connexion MySQL : utf8_general_ci
    Interclassement des table : utf8_unicode_ci
    Interclassement des champs de chaque tables : utf8_general_ci
    0
    1. En localhost, j'ai supprimé , ENT_QUOTES, 'UTF-8' du code
      <?php echo htmlentities($dnn['presentation'], ENT_QUOTES, 'UTF-8'); ?>


      Et cela fonctionne.

      La même base, avec les même tables et les même données avec les même page php ne fonctionne pas sur mon site ... je n'ai rien si un accent est présent.
      0