problemes d'accents qui ne s'affichent pas correctement

Started by GuyE, March 25, 2020, 01:41:27 PM

Previous topic - Next topic

GuyE

Bonjour,
nous avons un forum récement installé, en Français donc, et il y a un soucis récurrent avec les accents.
ça ne le fait pas chez tous les utilisateurs, et très souvent, ça se corrige en rafraichissant la page dans le navigateur.
Mais ça revient.
je ne sais pas trop quoi chercher.
j'ai installé juste après avoir démarré le forum , le package  smf_2-0-17_french-utf8
j'ai vu aussi dans un autre sujet que peut être il faudrait essayer ceci:
$db_character_set = 'latin1' ;
mais je ne sais pas ou cela devrait se modifier et si vraiment il faut le faire.
le version du forum est: 2.0.17
l'adresse du forum éventuellement:

Merci si ça vous dit quelque chose.
bien cordialement.
Guy.

maximus23

Bonjour,

Déjà il faut savoir dans quel mode le forum a été installé.

Logiquement il doit être installé en UTF8 pour être compatible avec tous les langages et le set doit-être : $db_character_set = 'UTF8 ' ; dans le fichier settings.

Si il y a disparité entre les deux alors l'affichage sera toujours incorrect.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

GuyE

bonjour,
merci deja pour l'info sr le fichier settings.php
alors oui cela a été installé en utf8 et c'est bien ce qu'il y a dans le fichier en question.

Merci.


GuyE

bonjour,
au sujet des points abordés, je confirme donc que les choses sont correctes en termes de character_set.

je voudrais vous orienter vers le phénomène plus particulier qui fait que parfois les accents ne sont pas bons, et ça se corrige en rafraichissant l'affichage dans le navigateur.
Peut être est ce que ça tourne autour de ça.
Et c'est vrai particulièrement pour les nouveaux messages.

y a il dans les paramètres du forum des réglages qui optimisent le cache du forum, ou anticipe l'affichage etc...

Merci de me dire si vous voyez une solution qui évite ce soucis
cordialement
Guy.

maximus23

Bonjour,

Essayer en supprimant le cache de fichiers dans les réglages admin -> Paramètres du Serveur -> Cache.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

GuyE

bonjour, je reviens encore vers vous pour ce soucis j'en suis désolé.
je vous joins trois fichiers qui illustrent le probleme.

- le premier  (im1.jpg) montre un défaut d'accent  dans les libellés des catégories, mais sans caractères exotiques juste le petit point d'interrogation).
- le deuxième (im2.jpg) montre le soucis d'accents dans les messages qui parfois conduit a ce que le corps du message ne s'affiche pas.

- ces deux problemes semblent se remplacer l'un l'autre au fil des rafraichissements du navigateur F5).
après plusieurs rafraichissements parfois, tout semble redevenir ok.
cf le  troisième fichier im3.jpg
Merci si vous pouvez trouver une piste.

Sinon, pour chercher plus loin, et évacuer tout doute, je voudrais savoir s'il existe une methode pour réinstaller correctement un forum
et récupérer ce qui existe deja dans l'actuel. Même si je suis sur que cela a été fait correctement.
Peut être que sur ce point vous allez me dire qu'il faut faire un autre sujet.
merci d'avance pour vos possibles réponses.
Guy.

GravuTrad

Surtout comment est configuré votre hébergement à ce niveau? (il faut que ça corresponde aussi)
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

GuyE

Bonjour,
je ne sais pas. ou voir ça. La bdd est en utf8 depuis longtemps et ce n'est pas moi qui ais changé quoique ce soit à ce niveau.
on est sur un mutualisé chez ovh.
on a du dotclear et du piwigo qui fonctionnent correctement ainsi depuis longtemps.
Pour revenir au forum récement installé, la solution bdd en utf8 et le fichier de config sur utf8 ne fonctionne pas correctement
Est ce l'installation qui n'a pas été bien faite, je ne sais pas.

J'ai depuis mon précèdent message et après avoir lu certaines de vos réponses à d'autres, trouvé une solution qui ne pose pas de problèmes.

dans le paramétrage du forum la langue est à     fr_FR.utf8 et dans le fichier de config settings.php, le character set est à :

db_character_set = 'latin1';

ça fonctionne correctement depuis deux jours, mais pour autant est que c'est vraiment carré ou logique.?
je ne sais pas trop quoi penser.

alexetgus

Non, ça va pas du tout.
Il passer ta base en utf8 et caler le db_chaset à utf8 également.

Demande aussi à OVH si il gèrent bien leurs bases en utf8, ce qui devrait être le cas.

Mais en tout cas, on n'utilise pas un encodage utf8 et du latin1 en parallèle, c'est l'un ou c'est l'autre mais pas les deux !

GuyE

bonjour,
mais la base est bien en utf8

voir image de phpmyadmin....

mais si le sb_character set est à utf8 ça fait des problemes.

alexetgus

L'interclassement (ou collation en anglais), ce n'est pas les caractères utilisés dans ta base au quotidien pour stocker et lire les messages.
La collation est utilisée pour les comparaissons, par exemple.
Avec une collation à utf8_general_ci, les accents sont supprimés dans une comparaison, et c'est pour ça que tu n'as pas de souci. Même la casse est ignorée (majuscules/minuscules).

Si ton affichage fonctionne en latin1, c'est que ta base est dans cet encodage, ou même peut-être les deux (utf8 et latin1).
Je ne serais pas surpris que certains messages te réservent des surprises. Vérifie les anciens messages de ton forum.

Ceci dit, attends toi à avoir des soucis à plus ou moins long terme.
Personne ne sait comment sont encodés les caractères dans ta base et ça finira par te péter à la tronche si différents encodages sont utilisés.
T'inquiète pas, ton forum ne va pas sauter ni même planter. Il affichera les caractères spéciaux et les accents comme il en a envie, enfin comme SQL lui délivre...

GravuTrad

Tu es sûr que c'est la bonne base de données que tu nous montres? (c'est celle du forum?)
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

GuyE

Bonjour,
Bonjour,
Merci pour vos réponses.
- oui je suis complètement sur que c'est la bonne base.
- comment la base peut être dans deux encodages différents?
- hier j'ai pour ne pas prendre de risques, copié le forum ailleurs, et j'ai passé le tout en utf8 et utilisé l'outil de conversion (maintenance/base de données .... et donc oui tous les messages anciens ont forcement des caractères anormaux pour les accents etc.
le plus bizarre, quand je lis le texte des messages directement dans les tables depuis phpmyadmin, les caractères accentués ne sont pas lisibles et pourtant le forum arriva a les afficher correctement.
alors qu'est ce que je peux faire pour mettre ça en ordre?
abandonner les messages actuels et passer pour les nouveaux à tout utf8?
est ce qu'il existe une solution pour recréer un forum de rien et récupérer le contenu de l'actuel?
merci si vous pouvez me guider. en espérant ne pas vous lasser.

GuyE

re bonjour
un élément de précision, voici un test que j'ai fait après avoir remis le character_set à utf8 dans le fichier settings.php
la première photo copie d'écran du message dans le forum,  la deuxième le contenu affiché en interrogeant la table.

je suis désolé du temps que je peux vous faire perdre.
Guy.

alexetgus

Commence déjà par ne pas modifier sans cesse ton db_charset.
C'est comme ça qu'on se retrouve avec une base encodée dans autant de formats que tu auras bricolé !
Un message en UTF8, un autre en Latin1, un autre en ANSI (pourquoi pas ?), etc, etc...

A première vue, même ton PhpMyAdmin n'est pas paramétré comme il le faut, ou alors c'est ta base qui merde (je pense que c'est plutôt ça).

Là, maintenant, vu que tu as encodé tes messages de plusieurs façons dans ta base, je ne sais plus quoi te dire.
Convertir une base de Latin1 vers UTF8, et vice versa, c'est simple. Ca se fait tout seul.
Convertir une base Latin1/UTF8 vers je ne sais pas quoi, certainement UTF8, c'est beaucoup plus compliqué et ce sera manuel !

Je te souhaite beaucoup de courage, parce-que remettre ta base dans un état normal et un seul encodage, ça va te demander un travail de dingue !
A force de changer, et encore changer, tu fous la merde un peu plus à chaque fois.
J'espère que tu n'as pas beaucoup de messages/MP/Profils, etc.. . Parce-qu'il va falloir les prendre un par un !

Comme dirait l'autre, quand on ne connait pas, on ne touche pas....
Tu as tout touché et tu as retouché encore et encore.
Tu ne savais pas ce qu'est un encodage ? J'espère que maintenant tu sais et que tu vas arrêter de modifier cet encodage sans arrêt.

Je te souhaite de trouver quelqu'un de courageux qui acceptera de reprendre ta base de zéro pour la ré-encoder comme il faut, message par message (etc), comme je te l'ai dit...

GuyE

Bonjour,
Merci pour le sermon ....
Ceci dit je 'ai pas inventé tout seul le fait de mettre latin1 .
je l'ai lu ici.
Mais surement que ce n'était pas le même cas.
Donc j'ai trouvé quelqu'un de courageux, moi....
j'ai corrigé les messages les plus anciens, 400, pour les nouveaux ça semble aller correctement.
Merci  à tous.
Guy.

alexetgus

Oulala, c'était pas un sermon, loin de là !
C'était juste la vérité toute nue. Et ne la regarde pas trop, hein ? Elle est nue, je sais, mais pas de fixation dessus ! :P


GuyE

bonjour,
oh je fais ce que je peux, mais je ne suis ni trop susceptible, ni trop parano, ni rancunier (pour le coup il n'y a pas matière), et suis aussi conscient de mes erreurs.

pour revenir au sujet, il reste une chose qui m'étonne ou me questionne plutôt (enfin non, il y en a plein) :)

comme je l'ai dit, j'ai corrigé les contenus, et ça semble aller avec les nouveaux messages, mais il n'y en a pas 400 par jour donc j'attends de voir,
mais il y a une chose qui se passe encore même pour les messages récents,  les caractères comme le ' par exemple sont toujours codés comme la syntaxe html donc par exemple: '
C'est normal ou pas?
Merci pour la réponse s'il y en a une.


alexetgus

Salut,

Ce type de codage sous forme d'entité HTML, mais qui commence par &#, c'est de l'UTF8.

maximus23

Bonjour,

Oui c'est normal et c'est recommandé pour les forums en utf-8. Il y a même une fonction dans la maintenance qui permet de le faire.

Pour ce qui est des caractères bizarres moi j'utilise la procédure sql suivante :

UPDATE smf_messages SET body = replace(body, "rechercher", "remplacer");

J'ai déjà réparé pas mal de bases entièrement de cette façon.

Dans le temps j'avais fait un fichier mais plus moyen de remettre la main dessus mais cela va très vite à faire.

:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Advertisement: