Le 03/05/2007 15:00, Mihamina Rakotomandimby (R12y) a écrit :
>
> Soit des pages initialement en iso-8859-1 (et je ne dois pas le changer)
> avec un formulaire ou l'on écrit le symbole Euro "¤" dans certains champs.
Bien. Ce sera donc forcément sous forme d'entité (&euro

ou de
référence numérique (€ ou €

puisque ce caractère
n'appartient pas à iso-8859-1.
Voir :
http://www.miakinen.net/vrac/charsets/
http://www.miakinen.net/vrac/charset...an&or=3&pr=164
http://www.miakinen.net/vrac/charset...an&or=4&pr=128
> Certains champs se remplissent "automatiquement" par un petit script
> Javascript. Ainsi, je recopie par exemple la valeur entrée dans le premier
> champ dans certains champs. Il se trouve que c'est, des fois des montants
> en Euro qu'il faut "recopier", et ce avec le symbole ¤.
> Cela se fait normalement.
>
> Je récupère ces valeurs, et les écris dans une base de donnée MySQL, le tout
> en PHP.
> Quand je passe en mode verbeux, et que je demande au script PHP d'afficher
> la requete d'UPDATE/INSERT, alors il se trouve que le symbole ¤ est bien
> affiché.
Dans quel jeu de caractères ? iso-8859-1 ? cp1252 ? Si tu le fais
afficher via un navigateur, qu'y a-t-il quand tu visualises le code
source de la page ?
> Mais du prompt mySQL, quand je visionne l'enregistrement fraichement inséré,
> horreur! j'ai le code HTML du symbole ¤ (€)
Comment ça, « horreur » ? Puisque c'est le seul moyen.
> Comment savoir, lequel des éléments mis en oeuvre à utilisé/transformé
> en "€" ?
> Ca peut être:
> - le script Javascript
> - le script PHP
- le navigateur qui doit transmettre un caractère n'appartenant pas au
jeu déclaré
> Le souci c'est que quand je dis à PHP d'afficher la requete d'insertion ou
> d'update, il m'affiche ça dans mon navigateur (Konqueror). Mon navigateur,
> si il rencontre "€", il ne l'affiche pas brut, il transforme en ¤.
Voir le code source (Ctrl+U dans Mozilla ou FireFox).
> Je ne peux donc pas savoir si ¤ est passé en tant que "€" ou autre
> chose à PHP.
Tu peux aussi faire une boucle en PHP pour afficher les codes numériques
de chaque octet composant une chaîne.