News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Problème d'accents dans les signatures

Started by Paulo.chon, July 28, 2021, 07:27:05 AM

Previous topic - Next topic

Paulo.chon

Bonjour,

Je m'aperçois que les caractères spéciaux, enfin français, ne passent plus dans les signatures (je suis en train de faire du ménage et des mises à jour dans mon forum).
Mais dans les messages pas de souci.

Ainsi, l'apostrophe s'écrit l'#039apostrophe.

Jusqu'à présent il n'y avait pas de souci, dans les signatures comme ailleurs.

A noter que si je réécris une signature avec une apostrophe il n'y a pas de problème d'affichage.

Mon forum est en utf-8 et c'est bien ce qui est indiqué dans mon fichier settings :
$db_character_set = 'utf8';

Je me demandais si utiliser la commande "Convertir les entités HTML au format UTF-8" dans le menu Maintenance règlerait le problème, et surtout s'il y avait un risque à l'utiliser.
Ou bien cela n'a rien à voir ? Car je vois que les entités html commencent toujours par &, ce qui n'est pas le cas de ce que j'ai ici...

C'est un forum que j'ai repris de son ancien propriétaire, qui je pense ne l'avais pas installé en utf-8 dès le départ, donc il y a sans doute des trucs qui trainent comme ces chaines de caractères pour remplacer les caractères accentués...




maximus23

Bonjour,

Tu peux tenter le coup mais fais un solide backup avant car parfois on attrape des surprises de duplications.

Sinon tu fais un replace sql des caractères incorrects cela va très vite à faire.

Toujours Backup avant je ne le répéterai jamais assez :)
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...

Paulo.chon

Merci Maximus !

OK pour la requête sql tu m'as montré l'autre jour.
Par contre c'est dans quel fichier le contenu des signatures ?

maximus23

Bonjour,

UPDATE smf_members SET body = replace(signature, "xxx", "yyy");


Exemple :)
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...

Paulo.chon

Super !

Merci Maximus, toujours bienveillant et bienfaisant, que ferait-on sans toi ?!  :)

Paulo.chon

Encore moi...

Dis-moi Maximus, on est d'accord que la requête c'est :
UPDATE smf_members SET signature = replace(signature, "xxx", "yyy");

(SET signature) ?

maximus23

Bonsoir,

Oui ce n'était qu'un exemple mais dans ton cas c'est :

UPDATE smf_members SET signature = replace(signature, "xxx", "yyy");


x est remplacé par y.

:)

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...

Paulo.chon

#7
OK merci.

Pour l'apostrophe ça a marché, par contre pour les " c'est plus compliqué :

QuoteRequête SQL :

UPDATE smf_members SET signature = replace(signature, ""quot", """)

MySQL a répondu : Documentation
#1064 - Erreur de syntaxe près de 'quot", """)' à la ligne 1

Comment je fais pour dire que je veux remplacer "quot par " ?
Car dès que " apparait dans la requete il prend ça pour une indication du contenu...

Edit : non en fait pour l'apostrophe ça ne fonctionne pas trop non plus, j'en ai encore.

J'ai demandé le remplacement de '#039 par '.
Je peux demander de supprimer #39 plutôt (en le remplaçant par rien) mais ça me semblait plus logique de partir de ce que l'on a pour arriver à ce que l'on veut.

maximus23

Bonsoir,

Non moi j'ai pas de soucis de ce côté un exemple quand je fais des remplacements :

UPDATE `cpg143_pictures` SET `title` = replace(title, "é", "é");

Dans ton quot tu dois faire quoi comme remplacement exactement ?

Tu as une apostrophe dedans ?

Alors si c'est le cas tu dois utiliser des ' au lieu de " pour l'encapsuler.

:)
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...

Paulo.chon

Voilà ce que je dois remplacer :

(en rouge ce qui doit être remplacé, en vert ce qu'on doit obtenir)

'#039 par '
&amp par &
nbsp par (espace)
"quot par "

maximus23

Bonjour,

Rien de bien chinois :)


UPDATE smf_members SET signature = replace(signature, "'#039", "'");

UPDATE smf_members SET signature = replace(signature, "'&amp", "&");

UPDATE smf_members SET signature = replace(signature, "'nbsp", " ");

UPDATE smf_members SET signature = replace(signature, '"quot', '"');


:)
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...

Paulo.chon


Advertisement: