Page 1 sur 1

Encodage UTF-8 accents avec PDO et Base de données

Posté : 29 mars 2013, 03:00
par nico44530
Bonjour,

Je me connecte sur mon profil, j'affiche les infos du membre (mois de naissance) :
<?php echo $result['mois']; ?>
J'essaye par exemple d'afficher le mois "Décembre" et voilà le résultat de ma requête :

Dans ma base de donnée, le mois "Décembre" est affiché comme ça : "D&Atilde;"

J'ai pourtant bien encodé ma table en "utf8_general_ci"

Ensuite ma connexion à la base :
$connect = new PDO('mysql:host='.$PARAM_serveur.';dbname='.$PARAM_bdd, $PARAM_login, $PARAM_mdp, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
C'est peut-être au niveau de l'inscription que je dois ajouter quelque chose pour que les accents apparaissent ?

Voici un select avec une fonction qui affiche les mois en lettre dans la page d'inscription :
<?php
$Month = Array(
'1'=>'Janvier',
'2'=>'Février',
'3'=>'Mars',
'4'=>'Avril',
'5'=>'Mai',
'6'=>'Juin',
'7'=>'Juillet',
'8'=>'Août',
'9'=>'Septembre',
'10'=>'Octobre',
'11'=>'Novembre',
'12'=>'Décembre');

echo '<select name="mois" class="month-select">',"\n";
echo "\t","\t","\t","\t","\t","\t","\t","\t","\t",'<option value=""></option>',"\n";
for($i=1; $i<13; $i++){
	echo "\t","\t","\t","\t","\t","\t","\t","\t","\t",'<option value="', $Month[$i] ,'">', $Month[$i] ,'</option>',"\n";
}
echo "\t","\t","\t","\t","\t","\t","\t","\t",'</select>';
?>
Merci d'avance pour votre aide ;)

Re: Encodage UTF-8 accents avec PDO et Base de données

Posté : 29 mars 2013, 03:14
par nico44530
Problème presque résolu.

Dans ma base, le mois est affiché comme ceci : Décembre
Alors que dans le profil du membre, le mois est affiché correctement avec les accents

Pour infos, j'ai juste enlevé :
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")
en trop dans la connexion à la base

Comment faire pour que dans ma base le mois soit affiché correctement ?

Merci d'avance ;)

Re: Encodage UTF-8 accents avec PDO et Base de données

Posté : 29 mars 2013, 17:01
par moogli
Garde que le numéro du mois et traduit en php, ou alors garde la date, php te feras la traduction ;)

Sinon au moins normalisé la guise et créer une table pour les mois + FK.
Est tu sur de l'encodage de la colonne ?
@+