[Résolu] UTF-8 et les commentaires

  • Statut : non résolu
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.