J'ai créé un formulaire me permettant de modifier la base de données. Lorsque je rentre un texte directement dans le formulaire, pas de problème avec les guillemets (simples et double). En revanche si je copie un texte d'un site ou d'un document et que je le colle dans mon formulaire mes guillemets sont remplacés par des points d'interrogation.

Pourtant je me sers de la fonction addslashes et de utf8_encode. Ma base de données et mes pages sont également en utf8.

Je sèche, et à part changer les guillemets à la main je sais pas quoi faire Smiley decu .
Bonjour,

utf8_encode te permet de convertir une chaine de caractères de ISO-8859-1 vers UTF-8. Si tes pages sont en UTF-8, le navigateur va normalement envoyer la saisie dans le formulaire en UTF-8, et donc l'utilisation de utf8_encode est non seulement inutile mais aussi dangereuse.

L'apostrophe droite (') et les guillemets droits (") sont identiques (même valeur numérique) en ASCII, ISO-8859-1 et UTF-8. Donc si tu les convertis avec utf8_encode rien ne change. Par contre les apostrophes typographiques, guillemets anglais (inclinés) et français (chevrons) n'existent pas en ISO-8859-1, ce qui cause sans doute tes problèmes.

Pour la route, référence des caractères concernés:
http://www.fileformat.info/info/unicode/char/2018/index.htm
http://www.fileformat.info/info/unicode/char/2019/index.htm
http://www.fileformat.info/info/unicode/char/201c/index.htm
http://www.fileformat.info/info/unicode/char/201d/index.htm
http://www.fileformat.info/info/unicode/char/00ab/index.htm
http://www.fileformat.info/info/unicode/char/00bb/index.htm