Probleme d'encodage
Résolu
bacly
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
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. . .
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. . .
A voir également:
- Probleme d'encodage
- Encodage ascii - Guide
- Encodage binaire - Guide
- Parametre d'encodage non pris en charge - Guide
- Le flux d’octets était en erreur par rapport à l’encodage de caractères déclaré. la déclaration d’encodage des caractères était peut être incorrecte. ✓ - Forum Programmation
- Soucis d'encodage ✓ - Forum PHP
3 réponses
dans ta base ils sont stockés comment les caractères accentués? normalement si tout va bien ils devraient ressembler à des trucs genre "é "
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.
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
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
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());
}
?>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=base', 'root','');
$bdd->exec("SET CHARACTER SET utf8");
}
catch(Exception $e)
{
die('Erreur :' .$e->getMessage());
}
?>
La manière correcte d'initialiser PDO pour utiliser utf8 est :
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.
$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.