Problème d'affichage d'apostrophes
BenjaminN
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Salut à tous,
Je cherche à afficher un texte qui contient des apostrophes particulières : " ’ ".
Elles viennent sans doute de Word (il a plusieurs types d'apostrophes), qui transforme tout "L'enfant" en "L’enfant" par exemple. Après, avec un copier/coller basique, ça se retrouve dans ma base de données, et puis j'arrive plus à les afficher.
Du coup, sous Firefox, ça m'affiche un carré avec marqué 0092 : 00 sur la première ligne, et 92 sur la deuxième. Visiblement Firefox ne s'en sort pas.
Le champ de ma table qui contient le texte est en ISO (je peux pas le changer hélas), donc je fais un utf8_encode après pour afficher le résultat.
Je me suis dit qu'avec un str_replace basique, je pourrais m'en sortir, mais visiblement ça fonctionne pas mieux. Voici mon code:
Ne remplace rien du tout.
Alors je me tourne vers vous : avez-vous une idée?
Merci les amis
Je cherche à afficher un texte qui contient des apostrophes particulières : " ’ ".
Elles viennent sans doute de Word (il a plusieurs types d'apostrophes), qui transforme tout "L'enfant" en "L’enfant" par exemple. Après, avec un copier/coller basique, ça se retrouve dans ma base de données, et puis j'arrive plus à les afficher.
Du coup, sous Firefox, ça m'affiche un carré avec marqué 0092 : 00 sur la première ligne, et 92 sur la deuxième. Visiblement Firefox ne s'en sort pas.
Le champ de ma table qui contient le texte est en ISO (je peux pas le changer hélas), donc je fais un utf8_encode après pour afficher le résultat.
Je me suis dit qu'avec un str_replace basique, je pourrais m'en sortir, mais visiblement ça fonctionne pas mieux. Voici mon code:
$texte= str_replace("’", "'", utf8_encode($article['texte']));
Ne remplace rien du tout.
Alors je me tourne vers vous : avez-vous une idée?
Merci les amis
A voir également:
- Problème d'affichage d'apostrophes
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Problème affichage facebook ✓ - Forum Facebook
- Problème affichage page internet google chrome ✓ - Forum Google Chrome
- Windows 11 affichage classique - Guide
4 réponses
Bonjour,
Alors va voir du coté du stripslashes et addslashes
Si ton magic_quote_gpc est désactivé dans le php.ini c'est ce qui se passe.
Et pour des raisons de sécurité il vaut mieux qu'il soit désactivé et surtout que dans php6 cette directive n'existera plus.
@+
Alors va voir du coté du stripslashes et addslashes
Si ton magic_quote_gpc est désactivé dans le php.ini c'est ce qui se passe.
Et pour des raisons de sécurité il vaut mieux qu'il soit désactivé et surtout que dans php6 cette directive n'existera plus.
@+
J'ai fait :
et
aucun des deux ne changent.
De plus mon option magic_quotes_gpc est activée : c'est vraiment bizarre de vouloir l'enlever, c'était vachement utile ! Je me souviens de l'époque où on devait vérifier que tous les apostrophes étaient bien backslashé !
$texte= stripslashes(utf8_encode($article['texte']));
et
$texte= addslashes(utf8_encode($article['texte']));
aucun des deux ne changent.
De plus mon option magic_quotes_gpc est activée : c'est vraiment bizarre de vouloir l'enlever, c'était vachement utile ! Je me souviens de l'époque où on devait vérifier que tous les apostrophes étaient bien backslashé !
Bonjour,
Là je sèche...
Dans votre base de données avez vous bien le texte écrit entièrement ?
Si oui alors je ne vois pas ou est le problème ça doit s'afficher.
Néanmoins si vous voulez coder propre et pour le futur passer la directive magic_quote_gpc à OFF.
La sécurité supplémentaire c'est d'éviter aussi les injections sql dans vos scripts php.
Cordialement
Là je sèche...
Dans votre base de données avez vous bien le texte écrit entièrement ?
Si oui alors je ne vois pas ou est le problème ça doit s'afficher.
Néanmoins si vous voulez coder propre et pour le futur passer la directive magic_quote_gpc à OFF.
La sécurité supplémentaire c'est d'éviter aussi les injections sql dans vos scripts php.
Cordialement
La directive magic_quote_gpc sert justement à ça non? Elle échappe toutes les apostrophes, de façon à ce qu'on évite les injections SQL.
Mais à priori ici mon apostrophe n'est pas backslashé car elle ne présente pas de risque : ce n'est pas la même que celle de ma requête SQL !
Dans la base de données, elle apparaît bien, donc je pense que c'est au moment d'encoder d'ISO en UTF8!
Mais à priori ici mon apostrophe n'est pas backslashé car elle ne présente pas de risque : ce n'est pas la même que celle de ma requête SQL !
Dans la base de données, elle apparaît bien, donc je pense que c'est au moment d'encoder d'ISO en UTF8!
salut,
et si tu virais tous les mauvais apostrophes de ta BDD ?
tu fais un export en SQL, tu ouvres le SQL dans un éditeur de texte, rechercher/remplacer, tu remplaces tout et tu exécutes le nouveau SQL dans ta BDD.
par contre t'as intérêt à faire au moins deux sauvegardes !
et si tu virais tous les mauvais apostrophes de ta BDD ?
tu fais un export en SQL, tu ouvres le SQL dans un éditeur de texte, rechercher/remplacer, tu remplaces tout et tu exécutes le nouveau SQL dans ta BDD.
par contre t'as intérêt à faire au moins deux sauvegardes !
Ahah c'est pas aussi simple que ça en fait, parce que je n'ai accès qu'en lecture sur cette table ! Je travaille sur un site, découpé en deux parties, dont je ne m'occupe que de l'affichage, l'ajout de données étant géré par un CMS : si j'avais accès à ça, ce serait simple de remplacer juste avant que les données soient entrées dans la table toutes les apostrophes particulières en apostrophes normales !