[Résolu] UTF-8 et les commentaires (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 10 réponses, 3 participants et a été mis à jour pour la dernière fois par z720, le il y a 15 années.
11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #447168
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    Bonjour !

    J’ai un WordPress 2.0.1 qui se veut en francais, UTF-8 partout. C’est en tous cas ce qui est configuré dans mon panneau d’administrateur, ce que je trouve dans les en-têtes http que mon serveur web envoit :

    8 Content-Type: text/html; charset=UTF-8

    ainsi que dans les en-têtes html :

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    Je peux poster à partir de Firefox / Ubuntu tranquillement, les accents apparaissent correctement.

    J’ai deux endroits qui restent encore problématiques : les fils RSS que j’aggrège via Del.icio.us (par exemple http://www.valerie-et-guillaume.com/?pagename=ailleurs) et les commentaires (par exemple, http://www.valerie-et-guillaume.com/2006/02/17/lu-dans-des-livres-jean-paul-sartre/)
    Dans ces deux cas, les accents se font torturer, style texte entré en latin1 qui se fait afficher comme de l’UTF-8 (é apparait comme é dans les commentaires, et comme � dans les fils RSS aggregés par Del.icio.us).

    Toutes suggestions bienvenues :D

    #571279
    xavier
    Gestionnaire du forum
    Maître WordPress
    2126 contributions

    As-tu vérifié l’encodage des tes tables MySQL ?

    #571280
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    Je fais tourner mysql 4.0, j’ai cru comprendre que ca limitait les possibilités à latin1 ?

    #571281
    xavier
    Gestionnaire du forum
    Maître WordPress
    2126 contributions

    Déjà, latin-1 != utf-8. latin-1 == iso-8859-1, qui est un codage différent.
    Ensuite, dans MySQL 4.0, latin-1 est par défaut, et non la seule possibilité

    Lance cette requête sur tes tables WP :
    ALTER TABLE wp_truc MODIFY colonne CHARACTER SET utf8;
    ou un truc du genre (pas testé, de mémoire)

    #571282
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    Je ne suis pas un grand fan de “shooting in the dark”, et je n’ai décidemment pas trouvé comment faire afficher le codage de charactère de mes tables et colonnes mysql.
    http://dev.mysql.com/doc/refman/4.1/en/charset.html cause pas mal des charsets (et donne les moyens de convertir une table, base ou colonne, mais ne dit pas comment extraire le charset courant :-(
    À coups de mysqldump, je ne vois pas de charset spécifiés, dois-je cromprendre que c’est du latin1 partout et que je devrais changer le charset à tous les niveaux ?

    #571283
    xavier
    Gestionnaire du forum
    Maître WordPress
    2126 contributions

    Pour changer intégralement le chartset de tes tables :
    http://developpeur.journaldunet.com/tutoriel/sql/051206-sql-convertir-iso88591-utf8.shtml
    J’avais utilisé cette technique au début, quand je suis passé de pMachine (iso-8859-1) à WP (utf-8).

    #571284
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    Je me suis lancé dans un :

    mysql> alter table wp_categories CHARACTER SET UTF8;
    Query OK, 10 rows affected (0.02 sec)
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_comments CHARACTER SET UTF8;
    Query OK, 10 rows affected (0.02 sec)
    Records: 10  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_kiwi CHARACTER SET UTF8;
    Query OK, 24 rows affected (0.02 sec)
    Records: 24  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_linkcategories CHARACTER SET UTF8;
    Query OK, 1 row affected (0.02 sec)
    Records: 1  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_links CHARACTER SET UTF8;
    Query OK, 4 rows affected (0.02 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_options CHARACTER SET UTF8;
    Query OK, 91 rows affected (0.03 sec)
    Records: 91  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_post2cat CHARACTER SET UTF8;
    Query OK, 38 rows affected (0.02 sec)
    Records: 38  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_postmeta CHARACTER SET UTF8;
    Query OK, 20 rows affected (0.02 sec)
    Records: 20  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_posts CHARACTER SET UTF8;
    Query OK, 32 rows affected (0.02 sec)
    Records: 32  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_usermeta CHARACTER SET UTF8;
    Query OK, 64 rows affected (0.02 sec)
    Records: 64  Duplicates: 0  Warnings: 0
    
    mysql> alter table wp_users CHARACTER SET UTF8;
    Query OK, 5 rows affected (0.02 sec)
    Records: 5  Duplicates: 0  Warnings: 0

    puis un :

    ~# mysqldump –add-drop-table wp > /tmp/wp.sql && file /tmp/wp.sql
    /tmp/wp.sql: UTF-8 Unicode English text, with very long lines

    mais le problème persiste à chaque nouveau commentaire posté :-(

    #571285
    z720
    Membre
    Maître WordPress
    579 contributions

    Est-ce qu’en lançant la seconde commande tu n’aurais pas “annulé” les opérations précédentes ?

    #571286
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    La seconde commande ne fait qu’un dump de la base de données, et confirme qu’elle est codée en UTF-8.

    #571287
    gtamboise
    Participant
    Initié WordPress
    6 contributions

    J’ai fini par trouver une solution.

    Un détail effrayant, c’est que si vous demandez à Google “Wordpress UTF-8”, vous finissez quand même avec des pages et des pages de gens qui ont des problèmes.
    Rendons à mysql ce qui lui appartient, le problème vient bien de la base de données.
    Quelqu’un quelque part a dit que mysql 4.1 était la première version de mysql qui gérait correctement UTF-8. Or, Debian/Sarge vient par défaut avec mysql 4.0…

    J’ai donc juste installé le paquet mysql-server-4.1 (ce qui a supprimé d’office mysql-server (i.e. version 4.0), et qui a géré la mise à jour automatiquement). À partir de là, tout c’est mis à marcher.

    J’aurais rarement eu un problème qui m’aura fait autant courir, avec une solution aussi triviale…

    #571288
    z720
    Membre
    Maître WordPress
    579 contributions

    monde de merde.

11 sujets de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.