We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5811
    • 1,717 Posts
    Bonjour

    Bien que Modx soit configuré en Unicode (UTF-8) - utf-8, lorsque je mets un accent dans l’intitulé d’un champ tel que le titre d’un document et que j’enregistre, je retrouve après enregistrement un caractère � au lieu de la lettre accentuée.
    Manifestement le caractère encodé en UTF8 dans la base est mal interprété après lecture lors de l’affichage MOdx

    Est ce normal et connu ou est ce que cela cache une mauvaise configuration de mon environnement ?

    Ma base est sous Mysql 5, les tables sont encodées en UTF8

    Merci de vos réponses
      • 6726
      • 7,075 Posts
      Salut coroico !

      Si tu as installé la 0.9.6 RC c’est probablement du à un mauvais choix d’encodage de collation pour la base au moment de l’install. Heureusement, tu peux éditer facilement ce réglage en modifiant le fichier config.inc.php :

      $database_connection_charset = ’utf8’;

      :)
        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l'outil id
        • 5811
        • 1,717 Posts
        Je suis (encore) sur la version 0.9.5. Pour cette version je ne trouve aucune ligne concernant la collation.

        Est ce que ce problème est corrigé uniquement en 0.9.6 ?

        Lorsque je saisi "été" comme nom de document, j’enregistre bien "été" dans le champ page_title en base (valeur affiché via PhpMyAdmin) par contre quand je ré-ouvre la page je retrouve �t� dans le champ page title de modx

        J’avoue que je commence à ne plus rien comprendre ...

        Le mot "été", comment doit-il apparaitre via l’interface PhpMyAdmin (v2.8.2.4) ? été ou été

        Lorsque j’écris été via PhpMyAdmin dans le champ page_title, il se retrouve correctement affiché dans Modx !

        Qu’est ce qui est en cause Modx ou ma configuration Mysql 5.0 ?

          • 6726
          • 7,075 Posts
          Bon alors je suspecte un autre souci : tu as du choisir utf8 comme encodage du site dans le menu de configuration de modx (Outils > Configuration > Réglages Site), mais tu as aussi du choisir "francais" comme langue alors qu’il faut choisir "francais-utf8" dans la liste... et oui car le fichier de langue est alors encodé en utf-8 lui aussi, ce qui n’est pas le cas du fichier "francais".

          En fait on a gardé le latin1 sous la main uniquement pour ceux qui avait créé leur site en Latin1 au départ...
            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l'outil id
            • 5811
            • 1,717 Posts
            Malheureusement non, j’ai bien aligné le fichier de langage et je fonctionne avec Francais-utf8 et un encodage utf8.

              • 5811
              • 1,717 Posts
              Je complète mon mail précédent avec les résultats de mes investigations.

              En local, je travaille sous XP avec EasyPhp 1.8 (Mysql4.1, PhpMyAdmin 2.10, PHP4). Comme les character set UTF8 sont mal pris en charge j’avais forcé le character set dans la function connect de dbapiMysql.class.inc.php :

              $modx->db->query("SET CHARACTER SET ’utf8’");

              Malheureusement ce hack ne marche pas complètement et ignore apparement les champs descriptifs d’un doc (page_title notamment). Ce qui fait qu’après enregistrement et lecture on récupère des ? à la place des accents. Cela fonctionne pour [*content*] ou la lecture d’infos lu via en base via modx->db->query. Mais ne marche pas pour les chuncks. Pourquoi ? Mystère.

              Bref sous XP, avec EasyPhp1.8 et Modx9.5 sauf si quelqu’un me dit que c’est faisable, je pense qu’il faut mieux éviter de faire de l’utf8. Je pense passer soit à EasyPhp 2.0 soit à wamp5, soit installer Php, Mysql5 et le bon niveau de serveur Apache pour être en ligne avec mon environnement sur le serveur.

              Par contre je serai intéressé de savoir si quelqu’un fait de l’utf8 sous XP et quelle est sa configuration de base.

              Sur le serveur (Unix, Mysql5, PhpMyAdmin 2.8), en supprimant le hack (SET CHARACTER SET ’utf8’) indiqué au dessus, je confirme que cela fonctionne correctement. Les accents sont bien pris en compte et bien restitués après enregistrement et lecture de la base. Par contre PhpMyAdmin 2.8 ne restitue pas correctement les caractères utf8, ce qui fait qu’on retrouve été au lieu de été.
              Conclusions sous Unix, je pense qu’il convient d’avoir au minimum la version 2.10 de PhpMyAdmin si on veut contrôler que ces données sont correctement sauvegardées en base.

              Je change le titre du post pour l’indiquer comme résolu. Je laisse aux modérateurs le soin de décider si ce post doit être conservé ou non.

              Merci David pour ton retour. Je testerai la 9.6 dés que disponible officiellement.
                • 6726
                • 7,075 Posts
                De rien... OK ça explique si tu hacke le core ça va être difficile de faire du support wink (du moins, mieux vaut le préciser !)
                  .: COO - Commerce Guys - Community Driven Innovation :.


                  MODx est l'outil id
                  • 5811
                  • 1,717 Posts
                  Mille excuses pour le hack, j’avais oublié que je l’avais installé pour corriger le pb sous windows.

                  Sinon j’ai continué quelques tests sous XP. Cela peut peut etre intéressé d’autres personnes ...

                  1/ Sous XP, j’ai installé Wamp5 (php5,Mysql5.0,Apache2,PhpMyAdmin2.10) de façon à avoir un niveau de version MySql qui me garantisse que l’utf8 soit correctement pris en charge.

                  Avec Modx0.9.5 sous XP les pbs d’affichage des accents dans le manager persistent. Dans le champ page_title l’utilisation des accents est correctement pris en compte lors de l’enregistrement en base par contre l’affichage dans le manager persiste à présenter des ? au lieu d’accents. Par contre ce même titre de document est lui correctement affiché dans une page.
                  De la même façon concernant tinyMCE, une fois l’option entity encoding configurée à Raw, le mot "été" écrit dans le doc est bien enregistré en base mais réaffiché ?t? sous le manager. Par contre la prévisualisation le montre correctement affiché (été).

                  2/ J’ai installé la version Modx0.9.6 et fait les mêmes tests. Bonne nouvelle tous les pbs d’accents sont corrigés dans cette version.
                  Concernant tinyMCE, seul l’apostrophe continue d’etre encodé ' malgré l’option raw.

                  Donc conclusion de ce post: sous XP pour faire de l’utf8 les pré-requis sont à mon avis Modx0.9.6, Mysql5.0 & PhpMyAdmin 2.10 (qui traite correctement l’affichage de la valeur des champs en utf8).

                  Reste plus qu’à savoir quand la version 0.9.6 va être officiellement diffusée smiley
                    • 6726
                    • 7,075 Posts
                    Merci pour le feedback !
                      .: COO - Commerce Guys - Community Driven Innovation :.


                      MODx est l'outil id