htmlspecialchars, htmlentities ?

VaN
Mammouth du PHP | 1107 Messages

08 janv. 2009, 20:37

Bonsoir,

j'ai un <input type="text"> dont la value peut recevoir un string avec des caractères accentués.

J'aimerai donc transformer ces caractères accentués en caractères HTML, avant d'insérer ce string dans ma base de données. ("é" doit devenir "&eacute;" par exemple)

J'ai essayé htmlspecialchars() et htmlentities(), mais ils ne retournent pas le résultat voulu :
- sans traitement, un é se transforme en é
- avec htmlentities(), un é se transforme en &Atilde;&copy;
- avec htmlspecialchars(), un é se transforme en é

Existe t'il une fonction pour transformer un é en &eacute; (et de même pour tous les caractères accentués) ?

ViPHP
ViPHP | 4039 Messages

08 janv. 2009, 20:57

parce que le texte est de l'iso88591 alors qu'il est traité comme de l'utf8. Soit il faut signaler l'encodage dans la balise input, soit utiliser une fonction de conversion avant de vouloir manipuler les chaines.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

VaN
Mammouth du PHP | 1107 Messages

08 janv. 2009, 21:15

Laquelle de ces 2 solutions est la meilleure ? Et comment l'appliquer ?

Eléphant du PHP | 170 Messages

08 janv. 2009, 21:28

Bonsoir,
parce que le texte est de l'iso88591 alors qu'il est traité comme de l'utf8.
C'est pas le contraire ?

ViPHP
ViPHP | 4039 Messages

08 janv. 2009, 23:38

Bonsoir,
parce que le texte est de l'iso88591 alors qu'il est traité comme de l'utf8.
C'est pas le contraire ?
Je me le demande à chaque fois. l'utf8 affiche des caractères inconnus comme des points d'interrogation, l'iso avec des caractères exotiques. alors bon.. mais le problème est la, et il n'y a pas de meilleure solution, jusque une solution plus élégante: spécifier l'encodage dans l'input.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

VaN
Mammouth du PHP | 1107 Messages

09 janv. 2009, 01:00

Et comment fait-on pour spécifier l'encodage dans l'input ? Je ne vois rien qui ressemble à encode, dans les différents attributs d'un <input>.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 139 Messages

09 janv. 2009, 14:23


ViPHP
AB
ViPHP | 5818 Messages

09 janv. 2009, 17:20