Probleme d'encodage

Résolu
bacly Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
Je viens vous expliquez mon probleme, actu je developpe un site sur WAMP et je compte le mettre en ligne dans peu de temps mais je remarque un probleme avec l'encodage. Si ya quelqu'un qui poura m'aider avec les étape afin de bien encoder mon site en utf-8.
*Voici ce que j'ai actuelement.

Coté HTML5
<meta charset='utf-8' />

Coté MySQL
J'ai defini l'interclassement à utf8_general_ci

Dans mes pages les caracteres accentués ne s'affichent pas s'ils sont recupérés dans la base. Merci pour votre aide. . .


3 réponses

Natio78 Messages postés 719 Date d'inscription   Statut Membre Dernière intervention   96
 
dans ta base ils sont stockés comment les caractères accentués? normalement si tout va bien ils devraient ressembler à des trucs genre "é "
0
bacly Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
jai inséré moi meme les infos sur ma base, les caractères sont b1 affiché. lors de la recupération pour l'affichage ça vien ?nerv?s. Merci d'avance. Si kelk1 peu me montré la procedure pas à pas car j'ai assayer des tuto mai ça passe pas. Actu je fai les testes sur WAMP.
0
Utilisateur anonyme
 
Bonjour

Si tout va bien, tes caractères accentués apparaissent normalement quand tu regardes at base avec phpMyAdmin.

Quand tu travailles en utf-8, il faut le dire à mysql au moment de la connexion, avec une requête SET NAMES 'UTF8' si tu travailles avec les fonctions classiques, ou en indiquant l'option qui va bien si tu travailles avec PDO
0
bacly Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
merci bocou pour l'inportance ke vou accordé a mon probleme et merci encore. j'ai pas enkor eu une solution et j'ai essayer des peti tuto pas tres complet sur des site k jai vu. Merci pour votre aide
0
bacly Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci a tout le monde, j'ai eu une solution a mon proble, j'utilise PDO. Donc apres la connexion a la base on defini l'encodage comme ceci en entier.

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=base', 'root','');
$bdd->exec("SET CHARACTER SET utf8");
}
catch(Exception $e)
{
die('Erreur :' .$e->getMessage());
}
?>
0
Utilisateur anonyme
 
La manière correcte d'initialiser PDO pour utiliser utf8 est :

$bdd= new PDO('mysql:host=localhost;dbname=baset', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

C'est à dire que la commande SET NAMES utf8 doit être intégrée à l'initialisation et non pas exécutée séparément.
Mais il y avait un bug dans les premières versions de PDO qui faisait que ça ne marchait pas (MYSQL_ATTR_INIT_COMMAND n'était pas défini), et dans ce cas on peut utiliser ta méthode, mais ce n'est pas celle recommandée.
0