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
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
Le 25/04/2018 23:48, AlainL a écrit :
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
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
Ce qui n'a rien à voir avec le code PHP. Comme je l'écrivais en (1)
la page est correctement encodée.
En effet, le Ê est dans la même plage que le É, il y a donc le même
bug.
Sur Thunderbird ??? Que vient faire le courrielleur là-dedans.
Ah. Et donc tu ne corrige pas le PHP pour les É et les Ê ?
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
Je me suis désigné comme destinataire pour le test.
Là, ça dépasse mes compétences :-(
...............