gratifiant > comp.divers.* > comp.infosystemes.www.auteurs

AlainL (25/04/2018, 23h48)
Bonjour,
J'ai utilisé un générateur de formulaires de ge-net . Mon formulaire
fonctionne mais la partie en php ne tient pas compte du charset=utf-8
choisi.
La saisie est en php et se trouve en tête du fichier.
Ensuite le <head> contenant le charset
puis le <body> qui écrit la page.

Tout ce qui passe par le php ne gère pas correctement les accents.



Merci pour vos conseils

alainL
Olivier Miakinen (26/04/2018, 14h40)
Bonjour,

Le 25/04/2018 23:48, AlainL a écrit :
> J'ai utilisé un générateur de formulaires de ge-net . Mon formulaire
> fonctionne mais la partie en php ne tient pas compte du charset=utf-8
> choisi.
> La saisie est en php et se trouve en tête du fichier.
> Ensuite le <head> contenant le charset
> puis le <body> qui écrit la page.
> Tout ce qui passe par le php ne gère pas correctement les accents.
>


J'ai fait plusieurs tests, où il ressort que :
1) ta page est bien en UTF-8, aussi bien avant la requête qu'au retour ;
2) les « é » passent correctement ;
3) les « É » ne passent pas.

La première différence que je vois entre un « é » et un « É » est le
premier s'encode en UTF-8 avec deux octets supérieurs à A0 en hexa,
donc tous deux dans ISO-8859-1, alors que le second nécessite un octet
valant 89 en hexa, donc en dehors de cette table.

Je suppose donc que c'est ton code PHP qui considère les caractères
comme étant en ISO-8859-1 alors qu'ils sont en UTF-8. Vérifie le code
lui-même, et au besoin va poser la question sur fr.comp.lang.php après
avoir copié le code source dans un fichier texte (pour qu'il ne soit
pas interprété comme du PHP). Il y a sûrement dans ce code une fonction
(peut-être d'accès à une base de données) qui croit que tu lui passes
de l'ISO-8859-1.

Cordialement,
AlainL (26/04/2018, 15h18)
Le 26/04/2018 à 14:40, Olivier Miakinen a écrit :
[..]
> (peut-être d'accès à une base de données) qui croit que tu lui passes
> de l'ISO-8859-1.
> Cordialement,

Merci. J'ai enregistré le fichier ouvert avec Notepad++ en demandant
l'encodage en utf-8.
Essai : l'affichage en local du message envoyé est correct (sauf un ê
majuscule, majuscule imposée je pense par la vérif de la validité des
saisies), mais sur mon Thunderbird le message reçu restait en
hieroglyphes :-( .... jusqu'à ce que je paramètre ledit Thunder en
détection auto de l'encodage !
Bonne journée
alainL
Olivier Miakinen (26/04/2018, 17h34)
Le 26/04/2018 15:18, AlainL a écrit :
> Merci. J'ai enregistré le fichier ouvert avec Notepad++ en demandant
> l'encodage en utf-8.


Ce qui n'a rien à voir avec le code PHP. Comme je l'écrivais en (1)
la page est correctement encodée.

> Essai : l'affichage en local du message envoyé est correct (sauf un ê
> majuscule, majuscule imposée je pense par la vérif de la validité des
> saisies),


En effet, le Ê est dans la même plage que le É, il y a donc le même
bug.

> mais sur mon Thunderbird le message reçu restait en
> hieroglyphes :-(


Sur Thunderbird ??? Que vient faire le courrielleur là-dedans.

> .... jusqu'à ce que je paramètre ledit Thunder en
> détection auto de l'encodage !


Ah. Et donc tu ne corrige pas le PHP pour les É et les Ê ?

> ---
> L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
>


Beurk. Merci de virer ça. Au pire tu lui demandes juste de ne pas
envoyer ce message de pub, au mieux tu désactives la vérification
des mails et news puisque ça fait double emploi avec le contrôle
de ce qui est écrit sur le disque.
AlainL (26/04/2018, 18h41)
Le 26/04/2018 à 17:34, Olivier Miakinen a écrit :
> Le 26/04/2018 15:18, AlainL a écrit :
>> Merci. ...............
>> mais sur mon Thunderbird le message reçu restait en
>> hieroglyphes :-(

> Sur Thunderbird ??? Que vient faire le courrielleur là-dedans.


Je me suis désigné comme destinataire pour le test.
> Ah. Et donc tu ne corrige pas le PHP pour les É et les Ê ?


Là, ça dépasse mes compétences :-(

................
Discussions similaires