PHP : caractères spéciaux

Fermé
kent - 8 déc. 2006 à 10:25
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 31 mai 2008 à 10:07
Bonjour,

Les données récupérées de la bdd ne s'affichent pas correctement :
les caractères spéciaux (é,è,à...) sont remplacés par (?).
Commenet puis-je avoir un affichage correct.

Merci pour votre aide.
A voir également:

8 réponses

oberion Messages postés 1253 Date d'inscription mardi 26 septembre 2006 Statut Membre Dernière intervention 29 septembre 2007 248
8 déc. 2006 à 11:21
Hello,
c'est un probleme d'encodage de la page affiché.
Ajoute ca dans le head de la page:

<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"
1
Profil bloqué
8 déc. 2006 à 13:00
tu vas dans ton formulaire de récuperation des données ,tu met pour chaque variable à récupérer par le code php,la commande:

htmlspecialchars( )

exemple: $a=htmlspecialchars($_POST['nom_champ'])
1
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
8 déc. 2006 à 22:36
plutôt que htmlspecialchars, qui ne fait que remplacer les chevrons ("<" et ">"), les guillemets et les &, utilise htmlentities.
(voir php les ressemblances a ne pas confondre )
Mais la meta est encore la meilleure solution ;-)
1
Profil bloqué
11 déc. 2006 à 09:24
j'ai l'impression que t'as raté une épisode??Ssylvainsab
htmlentities à lui seul ne suffit!Pas la peine que tu insiste j'ai déja testé avec "htmlspecialchars","l'expérience fait la différence"!!!
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825 > Profil bloqué
11 déc. 2006 à 22:03
Ah bon ?
L'encodage est bon ?
Ca m'étonne...

Mais alors, les caractères ne sont pas remplacés par leurs entités, si ?


Pas la peine que tu insiste
Pas la peine de s'énerver.
0
Profil bloqué > Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020
12 déc. 2006 à 13:58
tu me donne envie de rigoler!!!c'est franchement rigolo ce t'as écrit en commentaires!!!
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825 > Profil bloqué
12 déc. 2006 à 23:02
A : Je comprends pas ce que tu veux dire (quels commentaires ?)
B : Pourquoi tu ne réponds pas aux questions que je te pose, si tu as «l'expérience»?

a plus
0
Profil bloqué > Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020
13 déc. 2006 à 09:10
j'ai l'impression que tu ne fait pas la différence entre "Expérience"relative à "Expérimentation" et "Expérience" relative à "la durée dans la pratique".Car je suis jeune peu étre que t'est un peu plus agée que moi,ou on est dans le méme régistre.

Mais,écoute on est là pour s'entraider j'ai aucun intéret à jouer "Aux grands",car en essayant de répondre aux questions posées je me lance également comme tout le monde à la pratique et à la recherche...

é puis tu M'escuses qu'en méme si je me suis mal comporté avec toi,franchement je préfére plutot me faire des amis que des énemis.J'espére que tu me pardonera des mes réactions tantot salées...
0
merci à vous deux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
13 déc. 2006 à 14:15
j'ai l'impression que tu ne fait pas la différence entre "Expérience"relative à "Expérimentation" et "Expérience" relative à "la durée dans la pratique".
Si.
Je parle de «"Expérience"relative à "Expérimentation"»

peu étre que t'est un peu plus agée que moi
Je ne suis surement pas agée.
Par contre je suis peut-être plus agé que toi, je ne sais pas.


Pour finir, voici un test :
Tu verras bien que par défaut (sans options), htmlspecialchars converti seulement les guillemets, les esperluettes (&) et les chevrons (supérieur à, ">", et inférieur à, "<") et htmlentities tout les caractères qui ont une entité correspondante, hormis l'apostrophe.
http://ssylvainsab.free.fr/autres/tests/html-entities-et-specialchars.php
0
Profil bloqué
13 déc. 2006 à 14:45
je sens qu'on n'est pas prés d'en finir avec ce débat,car je peux encore te prouver le contraire.
Bon,je te propose ce que moi j'ai fais pour arriver à faire ma conclusion sur "htmlspecialchars",M.le commentateur:

je créé un formulaire qui me permet de récupérer les données d'un client(nom,prénom,etc..).

Ensuite,je stocke ces données dans ma base mysql.Maintenant,pour faire une mise à jour de ces mémes données client,il faut entrer le numéro qui fait référence à ce client,dans le champ n°client.Si je valide le nom,le prénom et l'adresse du client me sont affichées dans le méme formulaire.

Ainsi,pour le premiére fois je me suis rendu compte qu'il y avait des caractéres comme "&",",;" dans les informationsj'ai utilisé "htmlentities",ça n'a rien changé.Par la suite j'ai utilisé "htmlspecialchars" et je me suis rendu que tout était devenu nickel dans ma base de donnés.ET C'EST LE MéME PROBLéME QUI A éTé POSé ICI....

Enfin,Merci de la précision ...
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825 > Profil bloqué
13 déc. 2006 à 15:16
Il y a un truc auquel je n'ai pas pensé :
ça dépend peut-être de la version de php, ou de l'encodage du serveur ou de la BDD.
0
Profil bloqué > Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020
13 déc. 2006 à 15:28
oh oui,le php évolue...Tu as quelle base de données sous la main?
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
13 déc. 2006 à 15:39
Je n'utilise pas encore la base de données.
J'ai fait quelques rares tests avec MySQL, mais ca s'arrête là ;-)
0
Profil bloqué
13 déc. 2006 à 15:47
En fait tes exemples avec "htmlentities" mettent en valeur l'utilité de cette fonction,--)c'est clair, mais tu te rendra compte de ses insuffisances quand tu aura à manipuler les données de ta base de données.
0
jorjo52 Messages postés 1 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 31 mai 2008
31 mai 2008 à 09:40
pour l'ESPERANTO C,G,H,J,S,U POUR CHAPEAUTEES CES LETTRES !!! MERCI (DANKON)
0
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 46
31 mai 2008 à 10:07
htmlentities a un probleme pr certain code du type ™qu'il traduit par
&amp;&amp;#8482;
au lieu de
&amp;#8482;

reste avec
htmlspecialchar()
et si d'autre personne que toi peuvent inserer du text dans ta bdd
je te conseille fortement d'y rajouter
mysql_real_escape_string()
(mets des antislash devant les caracteres speciaux)

en sortie il te faudra par contre rajouter
html_entity_decode()
stripslashes()
(renvoie une chaine apres avoir retiré les antislash devant les caracteres speciaux)
et assure toi d'avoir une meta en
iso-8859-15
pr que l'€ soit affiché

bonne continuation
0