Problème de charset PHP<->MySQL

Résolu
Bonjour,

Je suis en train de développer un site Internet. Cependant, j'ai un gros problème d'encodage. Le code HTML ne pose aucun problème, même avec des accents, par contre, ça se gâte au niveau du PHP-MySQL. Lorsque je fais une requête dans la base de données et que j'affiche le résultat, tout les accents sont remplacés par des <?>.

Je ne sais pas d'où sa vient ! Une idée ? Merci

3 réponses

  1. Bonjour, avez vous toujours ces problèmes d'encodage après avoir utilisé la requête MySQL "SET NAMES UTF8" ?

    Pour l'utiliser:
    EN PDO:
    $variablePDO->query("SET NAMES UTF8");
    (remplacer $variablePDO par la variable que vous avez connecté à votre base)
    OU:
    mysql_query("SET NAMES UTF8");
    1. Merci pour ta réponse.

      Cela règle effectivement mon problème, merci !

      Par contre, que fait cette requête ? J'ai pourtant bien défini l'utilisation de l'UTF-8 au sein de ma base de données ET du serveur My-SQL.
      1. Contributeur
        L'encodage est une chose bien mystérieuse.
      2. Il y a plusieurs sortent d'UTF-8

        https://fr.wikipedia.org/wiki/UTF-8
      3. Les mystères sont expliqués dans les docs...
        L'encodage précisé par SET NAMES n'est ni celui des bases de données (qui peut être différent pour chaque champ de chaque table de chaque base d'un même serveur), ni celui de la page html(dont la base de données se moque éperdument), mais celui du dialogue entre l'application (php) et le serveur de base de données
      4. Contributeur
        Tous les UTF-8 partagent la même base sinon cela ne servirait plus à rien
      5. Il n'existe qu'un seul UTF-8. L'article de Wikipedia dit bien : "Ces variantes ne doivent pas être appelées « UTF-8 »."