Problème de caractère !

Fermé
Fab121205 Messages postés 81 Date d'inscription dimanche 26 juillet 2015 Statut Membre Dernière intervention 20 mars 2022 - 14 août 2016 à 10:35
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 21 août 2016 à 17:16
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
A voir également:

4 réponses

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
14 août 2016 à 12:12
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
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
14 août 2016 à 16:19
a faire avant l'envoie dans ta base, puis :

$var = utf8_encode($var);

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

Merci
Fab1205
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
16 août 2016 à 08:32
Dans ce cas la, récupère les données dans ta base puis essaye :

$var = utf8_encode($var);
echo $var;
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
Modifié par Exileur le 16/08/2016 à 08:44
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
Fab121205 Messages postés 81 Date d'inscription dimanche 26 juillet 2015 Statut Membre Dernière intervention 20 mars 2022 5
20 août 2016 à 17:42
Merci je regarde ça !! Fab
0
Fab121205 Messages postés 81 Date d'inscription dimanche 26 juillet 2015 Statut Membre Dernière intervention 20 mars 2022 5
21 août 2016 à 17:14
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
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
21 août 2016 à 17:16
Quel est le problème ?
0