PHP : caractères spéciaux

kent -  
Brachior Messages postés 613 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   248
 
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é
 
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   Statut Modérateur Dernière intervention   825
 
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é
 
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   Statut Modérateur Dernière intervention   825 > Profil bloqué
 
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   Statut Modérateur Dernière intervention  
 
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   Statut Modérateur Dernière intervention   825 > Profil bloqué
 
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   Statut Modérateur Dernière intervention  
 
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
kent
 
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   Statut Modérateur Dernière intervention   825
 
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é
 
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   Statut Modérateur Dernière intervention   825 > Profil bloqué
 
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   Statut Modérateur Dernière intervention  
 
oh oui,le php évolue...Tu as quelle base de données sous la main?
0
Ssylvainsab Messages postés 2884 Date d'inscription   Statut Modérateur Dernière intervention   825
 
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é
 
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   Statut Membre Dernière intervention  
 
pour l'ESPERANTO C,G,H,J,S,U POUR CHAPEAUTEES CES LETTRES !!! MERCI (DANKON)
0
Brachior Messages postés 613 Date d'inscription   Statut Membre Dernière intervention   46
 
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