Page 1 sur 1

htmlspecialchars, htmlentities ?

Posté : 08 janv. 2009, 20:37
par VaN
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) ?

Posté : 08 janv. 2009, 20:57
par Berzemus
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.

Posté : 08 janv. 2009, 21:15
par VaN
Laquelle de ces 2 solutions est la meilleure ? Et comment l'appliquer ?

Posté : 08 janv. 2009, 21:28
par blof
Bonsoir,
parce que le texte est de l'iso88591 alors qu'il est traité comme de l'utf8.
C'est pas le contraire ?

Posté : 08 janv. 2009, 23:38
par Berzemus
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.

Posté : 09 janv. 2009, 01:00
par VaN
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]

Posté : 09 janv. 2009, 14:23
par rolusseum

Posté : 09 janv. 2009, 17:20
par AB