Mihamina Rakotomandimby (R12y) a écrit :
> Bonjour,
>
> 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.
"On" ... qui ça ? le visiteur ?
si oui, comment s'y prend-il ?
si non, par quoi est-ce écrit ?
- en clair dans le code html ?
- javascript ?
- php ?
Ecrire '12 ¤' dans un champ de texte :
si c'est en
JS :
document.monForm.monText.value = 12 + ' \u20ac';
si en HTML :
<input name=montext value="12 €">
ou :
<input name=montext value="12 €">
si en php, pareil qu'en html ?
echo '<input name=montext value="'.12.' €">';
> Certains champs se remplissent "automatiquement" par un petit script
> Javascript.
Dans ce cas pour 'euro' utiliser le code unicode de remplacement :
\u20ac
<http://www.miakinen.net/vrac/charsets/?hv=h&o6=MacRoman&or=3&
pr=164>
exemple :
http://stephane.moriaux.perso.wanado...gloops_asm.htm
> Je récupère ces valeurs, et les écris dans une base de donnée MySQL, le tout
> en PHP.
Là il faut voir à voir ce qu'en fait le brouteur.
(je suppose que c'est "récupéré" par l'envoi du formulaire ?)
> 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é.
>
> Mais du prompt mySQL, quand je visionne l'enregistrement fraichement inséré,
> horreur! j'ai le code HTML du symbole ¤ (€)
Oui, et alors ?
c'est l'html-entité numérique,
celle entité-html verbeuse sera '&euro'
> Comment savoir, lequel des éléments mis en oeuvre à utilisé/transformé
> en "€" ?
> Ca peut être:
> - le script Javascript
certainement pas
> - le script PHP
ou bêtement le brouteur qui escape() le code récupéré dans la valeur de
l'input ?
> 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).
Heu il n'y a pas que Konkeror au monde ... ! ?
Mon navigateur Firefox,
pour '¤' trouvé dans un textarea ou un input renvoie : '%80'
qui est le code hexadecimal du charset Windows (CP1252)
(revoir le lien donné ci-avant des tables de caractères)
tu n'es pas sorti de l'auberge là ... !
> Mon navigateur,
> si il rencontre "€", il ne l'affiche pas brut, il transforme en ¤.
Normal.
> Je
> ne peux donc pas savoir si ¤ est passé en tant que "€" ou autre chose
> à PHP.
>
> Des idées?
y a pas une 'tite fonction PHP de traduction des html-entités en PHP ?
genre : htmlentity(blabla)
http://php.benscom.com/manual/fr/function.bin2hex.php
http://php.benscom.com/manual/fr/fun...t-uuencode.php
http://php.benscom.com/manual/fr/fun...ity-decode.php
http://php.benscom.com/manual/fr/fun...mlentities.php
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé