Encodage UTF-8 [Web + MySQL]

Sandriine Messages postés 1400 Statut Membre -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    - 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
  2. Sandriine Messages postés 1400 Statut Membre 283
     
    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
  3. Utilisateur anonyme
     
    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
  4. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sandriine Messages postés 1400 Statut Membre 283
     
    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
  7. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Et quel est l'encodage indiqué par ton navigateur ?
    0
  8. Sandriine Messages postés 1400 Statut Membre 283
     
    Unicode (UTF-8)
    0
  9. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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