Encodage UTF-8 [Web + MySQL]

Fermé
Sandriine Messages postés 1251 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 - 25 avril 2010 à 16:45
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 - 29 avril 2010 à 17:49
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

avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
25 avril 2010 à 16:51
- 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, ...).
0
Sandriine Messages postés 1251 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 286
26 avril 2010 à 09:35
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 "é")
0
Utilisateur anonyme
26 avril 2010 à 18:15
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
@+
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
26 avril 2010 à 19:26
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sandriine Messages postés 1251 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 286
26 avril 2010 à 20:02
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...
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
26 avril 2010 à 20:28
Et quel est l'encodage indiqué par ton navigateur ?
0
Sandriine Messages postés 1251 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 18 août 2010 286
Modifié par Sandriine le 29/04/2010 à 11:55
Unicode (UTF-8)
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
29 avril 2010 à 17:49
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 ...") ?
0