Rechercher : dans
Par :

PHP : caractères spéciaux

Dernière réponse le 31 mai 2008 à 10:07:24 kent, le 8 déc 2006 à 10:25:12 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « PHP : caractères spéciaux » dans :
[CCM] Utiliser des caractères spéciaux VoirVous pouvez utiliser des caractères spéciaux dans vos messages sur les forums de CCM. Vous pouvez: Soit utiliser la table de caractères Windows (charmap.exe) et copier-coller les caractères dans le message. Soit utiliser les entités...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

oberion, le 8 déc 2006 à 11:21:39

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"
Ourson grognon

Répondre à oberion

2

slum-dunk, le 8 déc 2006 à 13:00:37
  • +1

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'])

Répondre à slum-dunk

3

kent, le 8 déc 2006 à 18:33:30

Merci à vous deux.

Répondre à kent

4

Ssylvainsab, le 8 déc 2006 à 22:36:26

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 ;-) Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

5

slum-dunk, le 11 déc 2006 à 09:24:11

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"!!!

Répondre à slum-dunk

6

Ssylvainsab, le 11 déc 2006 à 22:03:18

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. Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

7

slum-dunk, le 12 déc 2006 à 13:58:26

Tu me donne envie de rigoler!!!c'est franchement rigolo ce t'as écrit en commentaires!!!

Répondre à slum-dunk

8

Ssylvainsab, le 12 déc 2006 à 23:02:47

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 Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

9

slum-dunk, le 13 déc 2006 à 09:10:54

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...

Répondre à slum-dunk

10

Ssylvainsab, le 13 déc 2006 à 14:15:08

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 Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

11

slum-dunk, le 13 déc 2006 à 14:45:52

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 ...

Répondre à slum-dunk

12

Ssylvainsab, le 13 déc 2006 à 15:16:43

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. Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

13

slum-dunk, le 13 déc 2006 à 15:28:27

Oh oui,le php évolue...Tu as quelle base de données sous la main?

Répondre à slum-dunk

14

Ssylvainsab, le 13 déc 2006 à 15:39:57

Je n'utilise pas encore la base de données.
J'ai fait quelques rares tests avec MySQL, mais ca s'arrête là ;-) Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

15

slum-dunk, le 13 déc 2006 à 15:47:31

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.

Répondre à slum-dunk

16

jorjo52, le 31 mai 2008 à 09:40:54

Pour l'ESPERANTO C,G,H,J,S,U POUR CHAPEAUTEES CES LETTRES !!! MERCI (DANKON)

Répondre à jorjo52

17

 Brachior, le 31 mai 2008 à 10:07:24

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

Répondre à Brachior