Discussion: euro iso-8859-1
Afficher un message
Vieux 03/05/2007, 16h42   #4
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: euro iso-8859-1

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 &euro;">
ou :
<input name=montext value="12 €">

si en php, pareil qu'en html ?
echo '<input name=montext value="'.12.' &euro;">';

> 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é
  Réponse avec citation
 
Page generated in 0,07058 seconds with 9 queries