8792 sujets

Développement web côté serveur, CMS

Je suis en train de développer un site ou pas mal de pages seront écrites par des visiteurs. tous les contenus sont stoqués dans des bases de données que j'affiche ensuite dans des pages...

Mon problème est le suivant, sur pas mal de pages j'ai cette erreur quand je fais avalider non site:
Line X, column Y: non SGML character number 146

je me doute bien que cela vien de la saisie des visiteurs, qui utillisent des caractères interdits.

Comment y remédier?

Pour info j'utillise le charset ISO-8859-1
et passe mes textes par un htmlentities($text, ENT_QUOTES); avant d'afficher...
Les articles sont-il des transcription de word ??

Si oui utilise le charset 1250 au lieu de ISO-8859-1 Smiley cligne
ben le problème, c'est que ce sont les visiteurs qui remplissent, donc, s'ils utillisent word, je ne peux pas le savoir...

je pense avoir réglé le problème en faisant celle manip:
$text = str_replace ("’","’",$text) ;

je n'ai plus l'erreur pour le caractère 146, mais y a t'il d'autres caractères qui pouraient poser problème? si c'est le seul, autant rester sur cet encodage non?
je suis confronté au même problème !!

Avec entre autres l'apostrophe de Word, le &, et quelques autres...


Quelle est la meilleure solution pour que ces caractères s'affichent correctement sur toutes les plateformes ?

- Faire une fonction en php str_replace qui convertit les caractères avant de les mettre dans la base de données (c'est peut-être un peu tard vu que j'ai déjà plein d'articles dans le site)

- Faire une fonction en php str_replace qui convertit les caractères à l'affichage (je me demande si ca n'est pas un peu lourd)

- autre solution en changeant le charset