Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Encodage de caractères pour les formulaires

14 réponses
Avatar
aisfos
Bonjour =E0 tous,

Je fait des formulaires avec du php, seulement le mail de confirmation
ainsi que les donn=E9es saisies par les internautes me donnent un
encodage bizarre et illisible avec des caract=E8res un peu sp=E9ciaux.
En fait certains formulaires sont utilis=E9s par des internautes
=E9trangers (finlandais, polonais, allemand, espagnols etc.). Et dans
ces langues il y a des caract=E8res un peu hors normes qui ne passent
pas du tout. Je me suis m=EAme rendu compte qu'avec l'uft-8 en ent=EAte,
m=EAme les accents du fran=E7ais passent =E0 l'as.
J'aurai bien aim=E9 trouver une solution, donc si vous avez des infos je
suis preneur !
Par avance merci de vos r=E9ponses.

Afahci

10 réponses

1 2
Avatar
Olivier Miakinen
Bonjour,

Le 12/02/2008 18:25, a écrit :

[...] Je me suis même rendu compte qu'avec l'[UTF]-8 en entête,
même les accents du français passent à l'as.



Par « en entête » tu veux dire dans les entêtes HTTP ou dans une balise
HTML <meta http-equiv> ? Par ailleurs, ton script PHP est-il sauvé en
UTF-8 ? Est-ce que tu n'utilises que des fonctions adaptées à l'UTF-8 ?

J'aurai bien aimé trouver une solution, donc si vous avez des infos je
suis preneur !



Commence par répondre (d'abord pour toi-même) aux questions ci-dessus.
Je ne sais pas quelle expérience tu as des jeux de caractères, et selon
le cas cela pourrait te suffire ou tu pourrais avoir besoin d'une aide
supplémentaire.

Tu peux aussi nous donner (dans ce groupe) une URL qui a le problème. Et
si vraiment tu ne t'en sors pas, repose la question sur fr.comp.lang.php
en prenant bien soin de recopier les parties intéressantes de ton code,
voire d'en rendre lisible tout le code source sur un site à toi ou sur
cjoint.com. Attention : fclp est un forum modéré, et il peut y avoir un
certain délai avant que ta question ne soit publiée.
Avatar
aisfos
On 12 fév, 23:21, Olivier Miakinen <om+ wrote:

Bonjour,


Par « en entête » tu veux dire dans les entêtes HTTP ou dans une b alise
HTML <meta http-equiv> ? Par ailleurs, ton script PHP est-il sauvé en
UTF-8 ? Est-ce que tu n'utilises que des fonctions adaptées à l'UTF-8 ?



Oui c'est une balise meta http-equiv. Pour le reste je n'en sais rien.


Commence par répondre (d'abord pour toi-même) aux questions ci-dessus.
Je ne sais pas quelle expérience tu as des jeux de caractères, et selo n
le cas cela pourrait te suffire ou tu pourrais avoir besoin d'une aide
supplémentaire.

Tu peux aussi nous donner (dans ce groupe) une URL qui a le problème. Et
si vraiment tu ne t'en sors pas, repose la question sur fr.comp.lang.php
en prenant bien soin de recopier les parties intéressantes de ton code,
voire d'en rendre lisible tout le code source sur un site à toi ou sur
cjoint.com. Attention : fclp est un forum modéré, et il peut y avoir u n
certain délai avant que ta question ne soit publiée.



En fait je ne suis pas développeur mais graphiste et je pensai
naïvement qu'il suffisait de changer le jeu de caractère dans le meta-
http-equiv pour être tranquille, mais à priori ça semble plus
compliqué.
J'ai placé ici :
http://diegoc.free.fr/ftp
Un zip avec le fichier php, si l'un d'entre vous à deux minutes, c'est
peut-être tout simple.
Entre temps je vais me renseigner un peu plus sur l'encodage, ça ne
fera pas de mal à ma culture générale ;)

Merci !
Afahci
Avatar
Olivier Miakinen
Le 13/02/2008 11:05, a écrit :

Par « en entête » tu veux dire dans les entêtes HTTP ou dans une balise
HTML <meta http-equiv> ? Par ailleurs, ton script PHP est-il sauvé en
UTF-8 ? Est-ce que tu n'utilises que des fonctions adaptées à l'UTF-8 ?



Oui c'est une balise meta http-equiv. Pour le reste je n'en sais rien.



Il vaudrait mieux un entête HTTP, car il prend le pas sur la balise
META. Voir par exemple ceci sur le site de Pierre Goiffon :
http://pgoiffon.free.fr/info/i18n/web-charset_html.php

En fait je ne suis pas développeur mais graphiste et je pensai
naïvement qu'il suffisait de changer le jeu de caractère dans le meta-
http-equiv pour être tranquille, mais à priori ça semble plus
compliqué.
J'ai placé ici :
http://diegoc.free.fr/ftp
Un zip avec le fichier php, si l'un d'entre vous à deux minutes, c'est
peut-être tout simple.



<cit.>
blablabla éàôè
</cit.>

Les octets dans le fichier correspondant au « éàôè » sont les suivants :
e9 e0 f4 e8. Cela veut dire que le fichier est en ISO-8859-1 ou en un
codage équivalent, mais certainement pas en UTF-8. Il faudrait donc que
tu le convertisses en UTF-8 (ou que tu vires ces quatre caractères si ce
sont les seuls caractères non ASCII : j'ai vu que tous tes accents ont
déjà disparu des commentaires).

Mais ce n'est pas tout. Tu utilises une base de données, or si tu y as
déjà stocké des chaînes en Latin1 avec des caractères non ASCII tu
devrais avoir des soucis pour relire ces chaînes. Je ne serai pas de
très bon conseil moi-même car je n'y connais pas grand chose, mais
d'autres pourront te conseiller.

Entre temps je vais me renseigner un peu plus sur l'encodage, ça ne
fera pas de mal à ma culture générale ;)



Pour la culture générale, voici un article très plaisant à lire, très
instructif, et bien traduit en français :
http://french.joelonsoftware.com/Articles/Unicode.html

À part ça, voici l'article qui a été la source de ma propre illumination
concernant UTF-8. Il est en anglais, mais facile à lire :
http://www.cl.cam.ac.uk/~mgk25/unicode.html
Et contrairement à ce que le titre pourrait faire croire il ne concerne
pas *que* les utilisateurs d'Unix ou de Linux.
Avatar
aisfos
On 14 fév, 00:37, Olivier Miakinen <om+ wrote:
Le 13/02/2008 11:05, a écrit :

Pour la culture générale, voici un article très plaisant à lire, t rès
instructif, et bien traduit en français :http://french.joelonsoftware.co m/Articles/Unicode.html

À part ça, voici l'article qui a été la source de ma propre illumi nation
concernant UTF-8. Il est en anglais, mais facile à lire :http://www.cl.c am.ac.uk/~mgk25/unicode.html
Et contrairement à ce que le titre pourrait faire croire il ne concerne
pas *que* les utilisateurs d'Unix ou de Linux.



Super, merci beaucoup. Entre temps j'ai arrangé le prb en changeant
les caractère accentué via ce site : http://www.hyper-lien.com/outils/ca racteres-speciaux.php
Mais comme ça ne change pas les entrées de formulaire je vais me
plonger dans les liens que tu me propose, je fera un compte rendu ici,
au cas ou ça intéresserai qq'un.

Merci !
Afahci
Avatar
Laurent vilday
a écrit :
On 12 fév, 23:21, Olivier Miakinen <om+ wrote:

Par « en entête » tu veux dire dans les entêtes HTTP ou dans une balise
HTML <meta http-equiv> ? Par ailleurs, ton script PHP est-il sauvé en
UTF-8 ? Est-ce que tu n'utilises que des fonctions adaptées à l'UTF-8 ?



Oui c'est une balise meta http-equiv. Pour le reste je n'en sais rien.



Ce qui en l'occurence ne semblait pas être le problème en lisant le post
initial. Les caractères en "erreur" sont dans l'email ou dans la page
HTML ? J'avais cru comprendre dans l'email, mais si on parle de
balisage, ça doit être autre chose ?

En fait je ne suis pas développeur mais graphiste et je pensai
naïvement qu'il suffisait de changer le jeu de caractère dans le meta-
http-equiv pour être tranquille, mais à priori ça semble plus
compliqué.



C'est bien pour ça que en tant que développeur je refuse de m'improviser
graphiste. Je ne comprendrais jamais pourquoi des gens s'obstinent à
faire appel à des personnes pour faire un travail dont ce n'est pas le
métier, ça me sidère.

J'ai placé ici :
http://diegoc.free.fr/ftp
Un zip avec le fichier php, si l'un d'entre vous à deux minutes, c'est
peut-être tout simple.



En partant du principe que le problème est dans l'email, je dirais
remplacer (ligne 144)

mail($email,$sujet,$mail,
"From: "$EMAIL_EXP_nom" <$EMAIL_EXP>nContent-Type: text/htmln");

peut être en lui indiquant à ce moment, lors de l'envoi donc, que le
contenu est UTF-8 (en considérant d'abord que la manipulation par PHP
des chaines de caractères est ok)

mail($email,$sujet,$mail,
"From: "$EMAIL_EXP_nom" <$EMAIL_EXP>nContent-Type: text/html;
charset=utf-8n");

Sinon rien de mieux que la doc.
<http://php.net/mail>

--
laurent
Avatar
Olivier Miakinen
Le 14/02/2008 11:40, Laurent vilday a écrit :

[...] Les caractères en "erreur" sont dans l'email ou dans la page
HTML ? J'avais cru comprendre dans l'email [...]



Bien vu ! J'avais lu un peu vite pour ma part, et j'ai cru que c'était
un simple formulaire en GET ou en POST.

En partant du principe que le problème est dans l'email, je dirais
remplacer (ligne 144)

mail($email,$sujet,$mail,
"From: "$EMAIL_EXP_nom" <$EMAIL_EXP>nContent-Type: text/htmln");

peut être en lui indiquant à ce moment, lors de l'envoi donc, que le
contenu est UTF-8 (en considérant d'abord que la manipulation par PHP
des chaines de caractères est ok)

mail($email,$sujet,$mail,
"From: "$EMAIL_EXP_nom" <$EMAIL_EXP>nContent-Type: text/html;
charset=utf-8n");



Oui.
Avatar
Nicolas Krebs
Olivier Miakinen écrivit dans l'article news:47b37f43$

> Entre temps je vais me renseigner un peu plus sur l'encodage, ça ne
> fera pas de mal à ma culture générale ;)

Pour la culture générale, voici un article très plaisant à lire, très
instructif, et bien traduit en français :
http://french.joelonsoftware.com/Articles/Unicode.html

À part ça, voici l'article qui a été la source de ma propre illumination
concernant UTF-8. Il est en anglais, mais facile à lire :
http://www.cl.cam.ac.uk/~mgk25/unicode.html
Et contrairement à ce que le titre pourrait faire croire il ne concerne
pas *que* les utilisateurs d'Unix ou de Linux.



Deux documents de très bon conseil.

Puis-je vous demander votre avis sur celui-ci, publié récement ?
Richard Ishida, « FAQ: Character encodings for beginners »,
W3C Internationalization Activity, 2008-01-31,
http://www.w3.org/International/questions/qa-what-is-encoding
Avatar
Olivier Miakinen
Le 14/02/2008 20:13, Nicolas Krebs a écrit :

http://french.joelonsoftware.com/Articles/Unicode.html
http://www.cl.cam.ac.uk/~mgk25/unicode.html



Deux documents de très bon conseil.



Merci. ;-)

Puis-je vous demander votre avis sur celui-ci, publié récement ?
Richard Ishida, « FAQ: Character encodings for beginners »,
W3C Internationalization Activity, 2008-01-31,



Volontiers, je vais le lire.

http://www.w3.org/International/questions/qa-what-is-encoding



Mon tout premier avis : c'est bien de citer l'article de Joel Spolsky
(celui-là même dont je recommandais la traduction française), mais il
serait préférable de ne pas l'orthographier « Spoksky ». ;-)

Pour le reste, je demande un peu de temps.
Avatar
Olivier Miakinen
Le 14/02/2008 20:13, Nicolas Krebs a écrit :

Puis-je vous demander votre avis sur celui-ci, publié récement ?
Richard Ishida, « FAQ: Character encodings for beginners »,
W3C Internationalization Activity, 2008-01-31,
http://www.w3.org/International/questions/qa-what-is-encoding



À première vue je n'en pense que du bien. En particulier toute la
partie « How does this affect me » (« En quoi suis-je concerné ») avec
plusieurs pointeurs vers d'autres documents, et surtout la réponse au
problème fréquent selon lequel « just declaring a different encoding
won't change the bytes » (« il ne suffit pas de déclarer un encodage
différent pour changer les octets »). C'était d'ailleurs une partie de
ma réponse à aisfos dans <news:47b37f43$.
Avatar
aisfos
On 14 fév, 11:40, Laurent vilday wrote:
a écrit :


> En fait je ne suis pas développeur mais graphiste et je pensai
> naïvement qu'il suffisait de changer le jeu de caractère dans le met a-
> http-equiv pour être tranquille, mais à priori ça semble plus
> compliqué.

C'est bien pour ça que en tant que développeur je refuse de m'improvis er
graphiste. Je ne comprendrais jamais pourquoi des gens s'obstinent à
faire appel à des personnes pour faire un travail dont ce n'est pas le
métier, ça me sidère.



Non, non pas d'imposture de ma part, je ne prend pas un travail pour
lequel je ne suis pas qualifié, je travail sur ces dossier avec un
développeur mais il ne peut pas me répondre à ce problème et
visiblement il s'en fout un peu et comme je suis en première ligne je
doit un peu rattraper le problème...
Bon sur ce, je me replonge dans la doc...

Afahci
1 2