Problème de caractère !

Fab121205 Messages postés 100 Statut Membre -  
Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   -
Quand j'affiche des infos de ma base de donnée j'ai des � à la place des é, è, à ... On m'a dit :
Change d'encodage en Utf-8_general_ci mais ca me dit :

Erreur de requête:
#1366 - Incorrect string value: '\xE9ant' for column 'Nom_jeu' at row 2

Merci Fab1205

4 réponses

  1. Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   150
     
    Salut,

    Si ta table est en ISO-8859-1 tu peux faire :

    $var = "Qu'est-ce que la vie sinon l'ombre d'un rêve éphémère ?";
    $var = utf8_decode($var);

    Cordialement

    0
    1. Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   150
       
      a faire avant l'envoie dans ta base, puis :

      $var = utf8_encode($var);

      Pour l'affichage sur ton site.
      0
  2. Fab121205
     
    Oui mais ma base de donnée est déjà faite.

    Merci
    Fab1205
    0
    1. Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   150
       
      Dans ce cas la, récupère les données dans ta base puis essaye :

      $var = utf8_encode($var);
      echo $var;
      0
    2. Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   150
       
      Pour convertir ta table, depuis l'onglet requête de phpmyadmin tu peux faire :
      ALTER TABLE {tablename} CONVERT TO CHARACTER SET utf8


      Pour la connexion à ta base de donnée, si tu utilises PDO, tu peux définir l'encode comme ça:

      $dsn = "mysql:NOM_DE_LA_TABLE;host=HOTE;charset=utf8";
      $user = 'USER';
      $password = 'PASSWORD';
      
      try {
          $bdd = new PDO($dsn, $user, $password);
          $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      } catch (PDOException $e) {
          echo 'Échec lors de la connexion : ' . $e->getMessage();
      }


      Puis dans tes pages, tu définies l'encodage en utf8 dans le head :

      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      </head>

      ça devrait corriger le problème :)
      0
  3. Fab121205 Messages postés 100 Statut Membre 5
     
    Merci je regarde ça !! Fab
    0
  4. Fab121205 Messages postés 100 Statut Membre 5
     
    Qu'est ce qu'il y a de faux :

    <?php
    $dns = "mysql:jeux;host=localhost;charset=utf8";
    
    $user = 'root';
    $password = '';
    
    try {
        $bdd = new PDO($dsn, $user, $password);
        $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
        echo 'Échec lors de la connexion : ' . $e->getMessage();
    }
    
    $reponse = $bdd->query('SELECT * FROM jeux WHERE Nom_jeu LIKE "a%" ORDER By Nom_jeu');
    ?>
    <center>
    <table class="table-apres-midi-jeux">
    <caption class="caption-apres-midi-jeux">
       <th class="caption-apres-midi-jeux">N°</th>
       <th class="caption-apres-midi-jeux">Nom</th>
       <th class="caption-apres-midi-jeux">Editeur</th>
       <th class="caption-apres-midi-jeux">Catégorie</th>
       <th class="caption-apres-midi-jeux">Âge min</th>
       <th class="caption-apres-midi-jeux">Prix</th>
    </caption>
    <?php
    while ($donnees = $reponse->fetch())
    {
    ?>
                    <tr>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Numero_jeu'];?></th>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Nom_jeu'];?></th>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Editeur'];?></th>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Categorie'];?></th>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Age_min'];?></th>
                        <td class="td-apres-midi-jeux"><?php echo $donnees['Prix_location'];?></th>
                    </tr>
    <?php
    }
    $reponse->closeCursor();
    ?>
    0
    1. Exileur Messages postés 1621 Date d'inscription   Statut Membre Dernière intervention   150
       
      Quel est le problème ?
      0