Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interclassement PHPMyAdmin

Sujet résolu
    7 janvier 2009 à 20:52:28

    Bonjour à tous,

    J'ai un soucis avec l'accentuation et les images (qui ne s'affichent plus) de mon site : le problème vient de l'interclassement mais impossible de le régler.

    Les paramètres sont les suivants :
    - mes pages php : encodage du texte en ISO (Latin 1)
    - ma base de données : interclassement latin1_swedish_ci
    - autres paramètres de phpmyAdmin : information_schema -> utf8_general_ci
    mysql -> latin1_swedish_ci
    - les tables de ma base de données : interclassement en utf8_bin

    Que dois-je modifier?

    Merci par avance pour votre aide!
    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2009 à 21:05:58

      Bonjour,

      Voila un tuto pas mal que je viens de trouver :

      http://www.siteduzero.com/tutoriel-3-3 [...] ssements.html

      Peut-être que sa peut t'aider ... ^^

      Ska_boy
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2009 à 21:56:32

        Merci le tuto est complet mais le problème persiste!

        J'ai donc tout passé en UTF-8 (utf8_general_ci) qui devrait prendre en compte tous les caractères mais rien ne change : j'ai toujours des ? à la place des accents et mes images ne s'affichent plus.
        • Partager sur Facebook
        • Partager sur Twitter
          7 janvier 2009 à 23:01:16

          Ta page est en UTF-8 ????

          Sinon dans notepad, FORMAT --> Convertir en UTF-8(sans BOM)

          Paramétrage --> Préférences --> Nouveau Document --> Windows:UTF-8(sans BOM) <-- pour que tous les nouveaux documents soit encodés en UTF-8

          Ska_boy
          • Partager sur Facebook
          • Partager sur Twitter
            7 janvier 2009 à 23:59:07

            Oui mes pages sont bien en UTF-8, et quand je fais un echo "éèü" tout s'affiche correctement.

            Le problème vient des informations de ma base de données, qui, elles, ne lisent pas les accents.

            Mon PHPMyAdmin ressemble à ça maintenant :
            ma_base_de_donnees utf8_general_ci
            information_schema utf8_general_ci
            mysql utf8_genera

            Et les paramètres de ma table "produits" :
            num_produit int(11)
            nom_produit varchar(40) utf8_bin
            prix_unitaire_produit float
            categorie_produit varchar(20) utf8_bin
            id_categorie_produit int(11)
            contenance_produits varchar(20) utf8_bin
            description varchar(10000) utf8_bin
            provenance varchar(50) utf8_bin
            caracteristiques varchar(250) utf8_general_ci
            utilisation varchar(250) utf8_general_ci
            conservation varchar(250) utf8_general_ci
            id_image_produit int(11)
            image_mini_produit varchar(50) utf8_general_ci
            image_produit char(50) utf8_general_ci
            nom_image_produit varchar(19) utf8_general_ci
            produitStar int(11)

            • Partager sur Facebook
            • Partager sur Twitter
              8 janvier 2009 à 9:00:55

              Bonjour,
              J'ai le même problème, j'attend de voir les réponses si ça peut m'aider ;)
              • Partager sur Facebook
              • Partager sur Twitter
                8 janvier 2009 à 9:02:35

                Utilises <?php header('Content-type: text/html; charset=UTF-8'); sur tes pages PHP.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 janvier 2009 à 11:04:54

                  Oui <?php header('Content-type: text/html; charset=UTF-8'); est bien rpésent sur toutes mes pages, mais le problème doit venir de ma base de données car seules les informations provenant de celle-ci (nom du produit par exemple), ne lisent pas les accents.
                  Lorsque je fais un "echo 'éàü'" sur une de mes pages, tout s'affiche normalement (puisque je ne fais pas appel à la base de données).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 janvier 2009 à 11:14:34

                    Essaye mysql_query("SET NAMES 'utf8'");
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 janvier 2009 à 21:17:57

                      Pourquoi le sujet est marqué comme résolu alors qu'eristofflyon dit que ce n'a rien changé.

                      Pour ma part j'ai aussi essayer ce qui est proposé et ça ne marche toujours pas.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 janvier 2009 à 23:22:59

                        Les infos contenues dans ta base sont pourries car insérées sans avoir mentionné à mysql que les chaines que tu lui transmettais étaient encodées en utf8 (cf solution d'ililoyd).

                        Cherche dans la doc de alter table comment transformer l'encodage de tes colonnes, en passant par des types binary.
                        ça devrait donner des ordres genre:
                        -- Tes colonnes ont doublement été encodées il faut revenir en arrière:
                        alter table ta_table convert to character set 'latin1';  -- décodage
                        alter table ta_table convert to character set 'binary';  -- neutralisation de l'encodage
                        alter table ta_table convert to character set 'utf8';    -- définition de l'encodage.
                        

                        Sur chaque table.
                        Après ça et en utilisant l'ordre d'ililoyd après chaque ouverture de connexion tout devrait rentrer dans l'ordre.


                        Tracker.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 janvier 2009 à 19:43:59

                          Le problème est résolu parce que ses tables étaient en latin_swedish et qu'il tentait de les manipuler comme de l'utf8.

                          S'il veut passer à l'utf8 il peut faire comme lui a dit Tracker ou rester en iso.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 novembre 2011 à 20:44:47

                            Bonsoir, ayant eu le même problème, j'ai suivi la démarche, cela a fonctionné mais j'ai dû faire une étape supplémentaire :

                            Dans chaque table, dans phpMyAdmin, je suis aller dans Structure, j'ai sélectionné les colonnes correspondantes, puis modifier, j'ai changé le VARBINARY en VARCHAR, j'ai ensuite renommé les champs car ils ont été altérés, et ça a fonctionné :)
                            Merci beaucoup !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 juillet 2014 à 7:52:17

                              Est ce que quelqu'un pourrait donner une procédure complète et précise, parce que moi je nage complet...

                              La technique de Tracker suivie de celle de Crazy Legs m'ont tout une partie de mes textes...

                              Voila ce que j'ai fait :

                              I

                              -- Tes colonnes ont doublement été encodées il faut revenir en arrière:

                              1 alter table ta_table convert to character set 'latin1'-- décodage
                              2 alter table ta_table convert to character set 'binary'-- neutralisation de l'encodage
                              3 alter table ta_table convert to character set 'utf8';    -- définition de l'encodage.

                              II

                              Ensuite ,dans phpMyAdmin, je suis aller dans Structure, j'ai sélectionné les colonnes correspondantes, puis modifier, j'ai changé le VARBINARY en VARCHAR (valeur que j'avais à l'origine et qui à du être modifié avec la manipe précédente)

                              de même, j'ai changé BLOB en TEXT.(ça me paraissait logique... c'est ce que j'avais aussi à l'origine)

                              Résultat: Les textes sont tronqués au niveau du premier accent rencontré...

                              Pour le coup je n'ai que quelques textes à recopié(pas trop grave) mais j'aimerai bien avoir une solution pour plus tard, on ne sais jamais.

                              Merci

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Interclassement PHPMyAdmin

                              × 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