PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.javascript > euro iso-8859-1
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
euro iso-8859-1

Réponse
 
LinkBack Outils de la discussion
Vieux 03/05/2007, 14h00   #1 (permalink)
Mihamina Rakotomandimby (R12y)
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut euro iso-8859-1

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.

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é.

Mais du prompt mySQL, quand je visionne l'enregistrement fraichement inséré,
horreur! j'ai le code HTML du symbole ¤ (€)

Comment savoir, lequel des éléments mis en oeuvre à utilisé/transformé
en "€" ?
Ca peut être:
- le script Javascript
- le script PHP

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 ¤. Je
ne peux donc pas savoir si ¤ est passé en tant que "€" ou autre chose
à PHP.

Des idées? Merci d'avances.
  Réponse avec citation
Vieux 03/05/2007, 14h04   #2 (permalink)
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: euro iso-8859-1

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 &#x20AC 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.
  Réponse avec citation
Vieux 03/05/2007, 15h42   #3 (permalink)
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
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 03h31.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,10595 seconds with 11 queries