Bonjour,
Je viens de développer un script Mysql qui récupère des champs textes d'un CMS Wordpress (même problème avec Joomla) sur une autre base de données, sur le même serveur dédié.

Or, quand j'affiche mon champ texte, les apostrophes ne passent pas. En faite, ce sont uniquement des apostrophes étranges ' et non '. Je pense que cela vient d'un copier coller d'un document WORD.

Ces apostrophes étranges ne sont pas lisibles sur le site d'affichage. Comment faire ?
J'ai essayé de faire une simple fonction PHP pour remplacer, mais le "replace" ne les remplacent pas.

J'ai déjà un utf8_decode sur l'affichage de mon champ texte sur mon site, car les accents ne passaient pas. Je suis pourtant en UT8 sur le site d'affichage, et aussi sur le site ou je vais chercher les données, qui lui affiche bien les apostrophes.

La seule facon actuellement pour moi est de modifier manuellement les articles du wordpress, retirer les apostrophes étrange par ceux de mon clavier.

J'espère avoir été clair.

Merci de votre aide.
Bonjour,

peex a écrit :
Ces apostrophes étranges

À vue de nez ce sont des apostrophes typographiques. Elles ne sont pas étranges, c'est même le caractère à préférer lorsque tu composes un texte pour l'imprimé... voire pour le Web.

Si tu travailles en UTF-8, la présence de ces apostrophes «normales» ne devrait pas poser de problème.
Par contre en ISO-8859-1, ce caractère n'existe pas et on devra utiliser l'apostrophe «droite» (celle que tu obtiens avec la touche «4» du clavier français) ou bien l'entité HTML ’.

peex a écrit :
J'ai déjà un utf8_decode sur l'affichage de mon champ texte sur mon site, car les accents ne passaient pas. Je suis pourtant en UT8 sur le site d'affichage

Heu... si tu fais un utf8_decode, et que les données moulinées ainsi sont bien en UTF-8, tu dois obtenir de l'ISO-8859-1. Donc si ça s'affiche bien sur le site, le codage des pages doit être déclaré en ISO-8859-1, pas en UTF-8. C'est peut-être là l'erreur?

peex a écrit :
retirer les apostrophes étrange par ceux de mon clavier.

*Grondement sourd tandis que des centaines de typographes trépassés se retournent dans leur tombes.* Smiley smile
Modifié par fvsch (25 May 2011 - 16:22)
Tout est déjà en UTF8, si je passe le site d'affichage en ISO, tout le reste va buguer !
peex a écrit :
Tout est déjà en UTF8

Mais tu utilises une fonction qui prend de l'UTF-8 et en fait de l'ISO-8859-1...
Je ne dis pas qu'il faut déclarer tes pages en ISO-8859-1... juste que pour l'instant tu as sans doute bricolé un truc pas logique et qu'il faudrait y remédier plutôt que de mettre une rustine par dessus ta rustine. Smiley cligne
peex a écrit :
Pourquoi les accents fonctionnent ils et non ces apostrophes ?

À vue de nez, parce que les caractères accentués que tu utilises existent en ISO-8859-1, mais pas ces apostrophes. Ou autre erreur à un moment donné dans ta chaine (données fausses ou corrompues en base, traitement problématique, mauvaise déclaration...).
Bonjour,
Je me permets de déterrer le sujet, car depuis deux jours je passe au crible tous ce qui se rapporte au sujet de l'encodage, j'ai aussi lu presque toutes les publications de "fvsch".
Mon problème est similaire à celui de "peex", mais je vais essayer d'apporter plus de détails:
Configuration:
- l'encodage du coté serveur est en UTF8 (vérifié dans l'entête HTTP).
- l'encodage de ma base, de mes tables et de mes colonnes est en UTF8
- J'ai un mysql_query("set names utf8"); après chaque connexion à mes bases.
- J'ai <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> sur toutes les pages du site.

Coté back-office
-Mes articles sont copié d'une page facebook.
-Aucune fonction php n'est utilisée ni pour l'affichage ni pour le l'enregistrement dans ma BDD
- Tout est bien affiché, même après retour de mon enregistrement dans des textarea ou dans des <p>.

Coté PhpMyAdmin
Les caractères spéciaux sont illisibles, ce qui ne les empêche pas d'être bien affiché dans le back-office du site.

Coté front-office
-Impossible d'afficher les caractères spéciaux à moins d'utiliser utf8_decode() ce qui n'est pas logique vu que tout est configuré pour enregistrer et afficher de l'UTF8.
-Après utilisation de utf8_decode tout les caractères accentués sont bien affichés sauf les "œ" de œuf par exemple et les apostrophes.
-Je repasse tout mon texte à la main dans le coté back-office, et les apostrophes s'affichent, mais pas les œufs.

J'espère que que vous allez pouvoir m'aider, je dois livrer le site dans 2 jours Smiley ohwell
et merci d'avance pour vos contributions.