Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème encodage avec mysql

    17 juin 2010 à 20:14:08

    Bonsoir :)
    Je suis actuellement en train de finaliser la V2 de mon site et je rencontre un petit problème avec les accents...
    A l'origine, je codais sous Dreamweaver et il semblerait que mes fichiers ne soient pas en UTF8. Le problème, c'est que je n'avais pas remarqué ce soucis. Or maintenant, je suis passée sous Netbeans et là mes fichiers sont bien enregistrés en UTF8.

    Vous aurez compris le problème : toutes les anciennes données stockées dans ma base de données (avec un jeu de caractère en utf8) ne sont pas en utf8 alors que les nouvelles le sont.
    Du coup je ne peux pas utiliser de fonction dans mon code php pour transformer le résultat en utf8 car du coup ça fait un double encodage en utf8 pour toutes mes nouvelles données et elles s'affichent mal (par contre, les anciennes s'affichent niquel).

    J'aimerais donc modifier directement mes données dans la BDD, j'ai déjà lu le tuto sur le site du zéro (et ailleurs) et essayé ce qui y était proposé (à savoir :
    ALTER TABLE table CHARACTER SET jeu_de_caracteres COLLATE interclassement
    

    et autres lignes de ce type), et ça n'a pas marché.

    Quelqu'un aurait-il une piste pour moi ? ça fait un petit moment que je cherche et là je sèche :(
    • Partager sur Facebook
    • Partager sur Twitter
      18 juin 2010 à 0:05:28

      Il n'y a pas de problème pour tes données.

      En fait, tu as besoin de faire cette requête et tout tes données seront encodées correctement.

      SET NAMES 'UTF-8'
      


      De plus, tu ne devrais pas avoir à faire d'encodage supplémentaire dans ton code.

      Voilà !

      Bonne soirée.

      • Partager sur Facebook
      • Partager sur Twitter
        18 juin 2010 à 8:40:29

        Oui mais comme je l'ai dis, si je mets ça, okay ça marche pour mes vieilles données, mais pas pour mes nouvelles :)
        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2010 à 8:53:00

          Je comprend pas le rapport entre le jeux de caractères de tes fichiers, le jeux de caractère de ta base de données et ton IDE...

          Pour moi, il n'y a aucun rapport...

          Analyse t'on le bon problème? :)

          Utilise tu la même base de données? As tu vérifier le jeux de caractère de ta base et de tes tables? Il ne devrait pas avoir changé...
          • Partager sur Facebook
          • Partager sur Twitter
            18 juin 2010 à 9:00:06

            La nuit porte conseil comme on dit, et en fait je pense avoir trouvé d'où vient le problème !

            Sur la version 1 de mon site, mes données insérées étaient uniquement protégées avec "addslashes". Or sur la V2, il y a toujours cette fonction, mais aussi "htmlspecialchars" qui lui transforme (entre autres) les caractères spéciaux.

            Du coup vous l'aurez compris, les données de l'ancienne version de sont pas "codées" (par exemple un "é" reste un "é", etc), mais celles de la nouvelle version si.

            Est-ce que le conflit peut venir de là ?
            • Partager sur Facebook
            • Partager sur Twitter
              18 juin 2010 à 9:14:33

              Possible...

              Pourquoi utiliser htmlspecialchars avant injection en base?

              As tu un exemple de mauvais affichage?

              Affiches tu les données extraites de ta base directement ou fais tu des conversions/décodage avant?

              Et surtout quel est le charset utilisé par ton serveur Web par défaut? es tu en UTF8 ou en ISO 8859-1?

              Si tu es en UTF8...les accents vont avoir des soucis d'affichage ^^

              • Partager sur Facebook
              • Partager sur Twitter

              problème encodage avec mysql

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown