Problème d'encoding ? (oui, encore) Problème d'encoding ? (oui, encore)
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Problème d'encoding ? (oui, encore)

Started by Cafeine, February 15, 2006, 06:58:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cafeine

Bon, je crosspost en fançais, on ne sait jamais...

J'ai updaté ma galerie proprement, réimporté dans une arborescence toute neuve les fichiers nécessaires et thèmes au format 1.4.x et updaté ma DB. Après quelques soucis, tout fonctionne "presque" : j'ai un problème d'encodage de texte.

Certains textes ont les bons accents, d'autres se retrouvent avec le signe avec le "?" dedans. Impossible de savoir pourquoi. Le problème, certains noms d'utilisateurs sont touchés et ça n'arrange pas mes affaires avec le bridge IPB que j'utilise (moi le premier, mon pseudo étant Caféine sur mon board). Bref, je regarde dans la DB et toutes mes tables Coppermine sont en latin1_swedish_ci en fait. Donc là je ne vois vraiment pas pourquoi et quoi faire...

le board : www.cafzone.net
la galerie (fermée du coup) :  www.cafzone.net/galerie

Loïc

Ben euh... pareil. Je viens de passer de la 1.3.2 à la 1.4."je sais plus combien" en upgradant manuellement mon thème et je me retrouve avec des caractères non gérés... Pas glop...  :-\

Loïc

#2
Bon alors... en choisissant "Western" dans "jeu de caractères" dans la config, j'ai résolu le pb pour les commentaires et les titres et les descriptions d'albums, mais ça reste rock'n roll pour les phrases "système" (menu, etc). Voir ici: http://presquile.crozon.free.fr/coppermine/index.php

De plus, je sais pas si c'est lié, mais impossible de changer de langue dans la config. Quoi que je mette, ça revient sur "french"...

Cafeine

Psschhh Pssschhh vatentoi !! :)  Bon sérieusement tu n'as pas le même problème de base que moi et connaissant les habitudes sans pitié des modos ici, tu devrais presque faire un thread à part. Moi je regarde ma pauvre base de donées sous PHPMyAdmin avec une tronche de cocker déprimé pendant ce temps là. ;)

Loïc

Argh, j'avais cru...

Bon, ben avant que ça barde pour mon matricule, j'ouvre un nouveau sujet...  ;D

Titooy

Si le problème est limité aux noms d'utilisateurs, jette un coup d'oeil à ce sujet. Sinon, il faudrait savoir exactement où sont les problèmes.

Cafeine

#6
Ok j'ai fait les modifs sur le fichier du bridge : ça AIDE !!  J'ai le bon nom.
MAIS (ha bah hé, faudrait pas croire que ça va s'arranger aussi "facilement"...) maintenant mon user de base (celui du forum, bridgé) (admin normalement) n'est plus admin de toute façon... Et les noms accentués dans les commentaires restent faux, avec des ? à la place des é à etc.
Et en plus (rhaaa) je viens de voir que certains commentaires étaient toujours dans le vent et je ne vois pas pourquoi ceux là et pas d'autres (idem, des ? à la place des accents).
Bref :
Toutes mes tables Coppermine en latin1_swedish_ci au lieu d'UTF, c'est normal docteur ?
Dois-je retenter une conversion des datas avec l'outil de coppermine ?
Il se passe quoi pour les trucs déjà UTF8 dans ce cas ?
A quel heure qu'on mange ?  ;)

Bref, heeeeeeeeeeeeeeeelp  :p

François Keller

Bonjour,
Quoteconnaissant les habitudes sans pitié des modos ici, tu devrais presque faire un thread à part.
C'est vrai nous sommes sans pitié ;D mais toi tu y va un peu fort avec Loïc, on pourrait en effet croire que son problème est du même genre que le tien  :-\
Je n'ai pas la solution à ton problème mais Titooy à déjà posté plein de réponses à ce sujet.
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Cafeine

#8
Nope Frantz, il y a des symptomes communs mais je doute que ça soit la même chose.
Pour ce qui est des "nombreuses réponses" aucune ne colle avec mon souci et PERSONNE ne répond à ce problème d'encoding dans la DB, qui me chafouine sérieusement. ;) latin1_swedish_ci au lieu d'UTF, ça me semble bizarre. Mais je ne suis pas assez callé pour savoir si c'est grave, comment on change ça et surtout comment convertir les datas (s'il faut le faire).

J'ai retourné ce forum, version anglaise et FR, et je n'ai pas la réponse. Je m'occupe d'un site de geeks, je sais à quel point il peut être pénible de répéter les mêmes choses, mais parfois, le problème est DIFFERENT. Si si je vous jure. (et je passe sur Gaugau le modo sans pitié, qui est limite côté politesse, c'est un autre problème).

Cela dit, après une bonne nuit de sommeil et les modifs sur le fichier du bridge, je n'ai plus de soucis qu'avec les droits des users et les noms accentués (links des commentaires, etc.). Je continue de bidouiller, je vous tiens au courant. Mais si quelqu'un a une idée... je suis prenneur. ;)

Titooy

Pour ce qui est de la collation de la base de données, elle n'a que peu d'importance, cela concerne uniquement l'ordre des tris. Les données en elle-mêmes sont de toute façon récupérées en iso par PHP (vivement la version 6 !)

Pour ce qui est des commentaires :
- pour ceux qui étaient dans la base de données avant la mise à jour, les noms d'utilisateurs sont en utf-8
- pour ceux qui ont été ajoutés entretemps, il va falloir les modifier manuellement dans la base de données
- pour les prochains, une fois que vous aurez fait la manip
Quote from: Titooy on December 15, 2005, 03:13:14 AM
udb_base.inc.php

dans la fonction load_user_data()
remplacez
$USER_DATA['user_name'] = $row['username'];

par
$USER_DATA['user_name'] = utf8_encode($row['username']);

(corrige le nom à côté de Quitter)
ça devrait marcher correctement...

Cafeine

Bonjour et merci beaucoup pour la réponse.
Bon, j'avais déjà fait toutes les modifs, dont celle-ci, que tu avais indiqué dans un autre thread. Et ça marche : j'ai le nom affiché correctement à côté de quitter.

Manque de chance, ça ne fonctionne pas dans les liens devant les commentaires sous les images. De plus, je n'ai plus de petits carrés avec ? dedans mais des ? "normaux" à la place des caractères accentués (je donne tous les détails, je ne sais plus trop ce qui peut être utile.)

Une idée aussi pour redonner le status d'admin à mon user IPB quand j'active le bridge ?

En tout cas merci pour le coup de main. (coucou frantz ;) )

Titooy

Pourrais-tu mettre une capture d'écran car je ne vois pas à quoi correspondens "les liens devant les commentaires sous les images".

Cafeine

Hop. Bon en fait pour l'histoire des ? à la place des accents j'ai enfin pigé (honte sur moi) : ce sont des ? tout bêtes sous Firefox et des carrés avec ? dedans dans Safari (ceci juste pour clarifier les choses. Désolé.)

Sur ce screen vous voyez que certains accents passent, d'autres pas. Idem pour les noms des gens. J'avais cru que les commentaires était OK en surfant rapidement sur certaines pages. Ce n'est pas le cas. :(

Titooy

Bizarre, comme si la table cpg_comments n'avait pas été convertie... Comment avais-tu fait la conversion ?

Est-ce que (avec les modifications indiquées plus haut) si tu ajoutes maintenant un commentaire, ton nom apparaît correctement dans le nouveau commentaire?

Cafeine

#14
J'aimerais bien tester mais comme je ne peux pas poster avec mon login IPB (vu que le bridge est fâché), je n'en sais rien. Je vais tenter de réouvrir la galerie et de tester.

Pour vous donner une idée de la prise de tête, 2 photos de l'outil charsetmgr.php (que je n'ai pas utilisé vu la tronche du check...)
Là je confirme, je ne vois pas pourquoi certains commentaires / descriptions d'images sont OK et d'autres pas. A priori, mais ça reste à confirmer, les plus vieux sont OK.

http://www.cafzone.net/mystuff/charsetgood.jpg
http://www.cafzone.net/mystuff/charsetbad.jpg

Edit : donc je confirme, tout marche si on rentre de nouveaux commentaires : nom de user et commentaires ont les bons accents (je rappelle que j'ai entièrement modifier les fichiers de bridge pour avoir l'utf8 partout, comme spéciifé dans une des faq).

Titooy

Je réitère ma question : comment as-tu fait la mise à jour qui a conduit aux problèmes ? charsetmgr.php ?

Et j'en pose quelques autres :
- quand as-tu fait la mise à jour ?
- quand as-tu réalisé qu'il y avait des problèmes et fermé la galerie ?
- y a-t-il des problèmes ailleurs que dans les commentaires ?

Cafeine

Pardon titooy, réponses donc :

L'update date de lundi soir.
J'ai fait un nouveau répertoire, installé CPG 1.4.3, déplacé les fichiers nécessaires de l'ancienne install (1.3.3), lancé update.php (ou upgrade j'ai un doute), pas de problème et là, refresh : rien. J'ai su le lendemain que l'alim de mon serveur avait cramée juste après. ;)
La table picture étant morte, mon admin a réimporter le backup de la vieille, re update. Re pas de problèmes selon CPG. Check des versions de fichiers, tout au vert. Découvertes des problèmes de charset dans la foulée. Fermeture de la galerie.

Le seul autres problème concerne certains noms de users avec accents (mais comme c'est dans les commentaires aussi, je ne sais pas si c'est géré directement dans cette table, genre juste avant le texte du commentaire).

Titooy

Les nom des utilisateurs qui s'affichent sur l'index, sur la page "profil" et dans la partie admin. viennent d'IPB
Par contre, pour les commentaires, les noms d'utilisateurs sont stockés en même temps que les messages dans la table cpg_comments.
Manifestement, il y a dû y avoir un problème lors de l'exécution de charsetmgr.php (si c'est bien ça que tu as utilisé pour la mise à jour du charset).
S'il n'y a effectivement de problèmes que dans la table cpg_comments et que c'est le cas pour tous les commentaires avec des accents (et cédilles), éditez le fichier charsetmgr.php et remplacez
            $affected_elements = array(
                                       $CONFIG['TABLE_ALBUMS'] =>
                                       array('aid', 'title', 'description', 'keyword'),
                                       $CONFIG['TABLE_PICTURES'] =>
                                       array('pid', 'title', 'caption', 'keywords'),
                                       $CONFIG['TABLE_COMMENTS'] =>
                                       array('msg_id', 'author', 'msg_body'),
                                       $CONFIG['TABLE_CATEGORIES'] =>
                                       array('cid', 'name', 'description'),
                                       $CONFIG['TABLE_USERGROUPS'] =>
                                       array('group_id', 'group_name'),
                                       $CONFIG['TABLE_USERS'] =>
                                       array('user_id', 'user_name', 'user_password', 'user_location', 'user_interests', 'user_occupations')
                                       );

par
            $affected_elements = array(
//                                       $CONFIG['TABLE_ALBUMS'] =>
//                                       array('aid', 'title', 'description', 'keyword'),
//                                       $CONFIG['TABLE_PICTURES'] =>
//                                       array('pid', 'title', 'caption', 'keywords'),
                                       $CONFIG['TABLE_COMMENTS'] =>
                                       array('msg_id', 'author', 'msg_body'),
//                                       $CONFIG['TABLE_CATEGORIES'] =>
//                                       array('cid', 'name', 'description'),
//                                       $CONFIG['TABLE_USERGROUPS'] =>
//                                       array('group_id', 'group_name'),
//                                       $CONFIG['TABLE_USERS'] =>
//                                       array('user_id', 'user_name', 'user_password', 'user_location', 'user_interests', 'user_occupations')
                                       );

et relancez charsetmgr.php toujours de western vers unicode, même s'il dit que la galerie est déjà en unicode.

sinon, la seule solution est d'appliquer les modifications à la main...

Cafeine

#18
Ok, et si certains commentaires avec accents sont corrects, ça va les massacrer au passage ?

C'est mon dernier problème, je viens de résoudre mon soucis d'intégration avec IPB (sauf que je n'ai plus le bouton de validations des images uploadées par les utilisateurs oO)

EDIT : bon comme j'aime l'aventure j'ai tenté et à part un commentaire (qui était utf8 dès le départ, un vieux, me demandez pas comment), ça passe nickel. Seule erreur du script en question : y'a pas d'array author !! C'est msg_author !  Forcément ça explique aussi pourquoi la conversion de mon pseudo marchait pas... J'ai changé le script pour faire la conversion que sur ce champs et tout est nickel maintenant (a priori).

Merci 1000 fois pour votre temps à tous !  ;D
PS : pas de lock tout de suite, ON NE SAIT JAMAIS. ;)

EDIT bis : le popup du dico des mots clés (quand on upload une image, c'est en option) a son interface codé en iso on dirait. Donc l'affichage en UTF8 ne lui réussi pas. Ou l'inverse (codage UTF8, affichage iSO, je ne sais pas).

Titooy

Quote from: Cafeine on February 17, 2006, 02:00:28 AM
EDIT bis : le popup du dico des mots clés (quand on upload une image, c'est en option) a son interface codé en iso on dirait. Donc l'affichage en UTF8 ne lui réussi pas. Ou l'inverse (codage UTF8, affichage iSO, je ne sais pas).
Effectivement, je l'ai déjà signalé aux développeurs. La solution la plus simple est de remplacer
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
par
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
dans le fichier keyword_select.php