charset, encore !

Le
AlainL
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.

http://alos-sibas-abense.com/acte_formulaire3.php

Merci pour vos conseils

alainL




L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #26473231
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.
http://alos-sibas-abense.com/acte_formulaire3.php

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,
--
Olivier Miakinen
AlainL
Le #26473238
Le 26/04/2018 à 14:40, Olivier Miakinen a écrit :
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.
http://alos-sibas-abense.com/acte_formulaire3.php

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,

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
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Olivier Miakinen
Le #26473263
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.
https://www.avast.com/antivirus

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.
--
Olivier Miakinen
AlainL
Le #26473262
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 :-(
...............
Publicité
Poster une réponse
Anonyme