Encodage UTF-8 [Web + MySQL] [Fermé]

Signaler
Messages postés
1251
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
18 août 2010
-
Messages postés
18473
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
-
Bonjour,

J'ai un site en utf-8 et une base de données MySQL derrière, comment dois-je faire pour que mes accents s'affichent correctement sur le site ET sur MySQL svp ?

8 réponses

Messages postés
18473
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
4 230
- Encode ton fichier en UTF-8
- Indique au navigateur que la page est en UTF-8 :
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- Mets les champs de tes tables en utf8_ (bin, general_ci, ...).
Messages postés
1251
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
18 août 2010
274
C'est ce que j'ai fait pourtant lorsque j'ajoute un champ depuis mon site dans la BDD, ça affiche mal les accents dans la BDD ("é" pour un caractère "é")

salut,
utilise les fonctions php utf8_encode() et utf8_decode()
comme ton site est en utf8 tu utilise la fonction utf8_decode() pour tranferer des données vers la bdd
et le tour est joué
si le probleme est maintenant sur le site tu utilise la fonction utf8_decode()
pour les information provenant de la BDD

exemple:
utf8_decode('ééééééééééé'); et tu auras éééééééééé ds la BDD
ou avec une variable
utf8_encode($var);

à toi de jongler avec ces fonctions
pour plus d'infos tu tapes ces fonctions sur google et tu auras des exemples de code
@+
Messages postés
18473
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
4 230
Inutile d'utiliser utf8_encode() ou utf8_decode().
Je fais mon site totalement en UTF-8 et je n'utilise pas ces fonctions.

@Sandriine : Vérifies l'encodage utilisé par ton navigateur. Dans Firefox : Affichage -> Encodage
Messages postés
1251
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
18 août 2010
274
Oui il me semble bien que je devrais y arriver sans les fonctions utf8_encode() et utf8_decode() ...

Pourtant le type de mes champs et de ma BDD est bien utf8_general_ci, le type de ma page (même dans firefox est utf-8), alors que quand j'ajoute un nouveau champ dans ma BDD (requête INSERT) à partir de mon site, l'accent ne s'écrit pas correctement...

Ca doit bien venir de quelque part...
Messages postés
18473
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
4 230
Et quel est l'encodage indiqué par ton navigateur ?
Messages postés
1251
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
18 août 2010
274
Unicode (UTF-8)
Messages postés
18473
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
26 novembre 2020
4 230
Quand "é" devient "é", c'est parce que l'encodage de la chaine est en UTF-8 mais que quelque-chose essaye de l'afficher en ISO-8859-1.

J'ai encore quelques questions :
- Quel est l'encodage indiqué par ton navigateur sur PhpMyAdmin ?
- Est-ce que tu as aussi ce problème quand tu affiches les caractères sur une autre page (via une requête "SELECT ...") ?