Internet Explorer et UTF-8

Nouveau WRInaute
Bonjour,

Les pages de mon site sont encodées en UTF-8 car elles affichent des caractères dits exotiques (ĉ - ĝ - ŭ - etc.) . Les visiteurs entrent aussi ce type de caractères dans les formulaires. Ces entrées sont traitées via Ajax et un fichier PHP.

Les entrées utilisateur dans les formulaires comportant ces caractères sont parfaitement traitées sur tous les navigateurs (Chrome, Firefox, Safari, Opera), mais sont incorrectement traitées sur Microsoft Internet explorer. Les accents ne sont pas reconnus.

J'ai déjà tenté de résoudre le problème par le charset (dans le Méta ou le header), j'ai modifié manuellement le codage dans le menu "Page - codage" de la barre d'outils d'IE, j'ai essayé d'ajouter utf_encode() et utf8_decode() devant mes variables dans mes fichiers PHP, j'ai ajouté la ligne "AddDefaultCharset UTF-8" dans le htaccess du répertoire,... et que sais-je encore ! Rien n'y fait !

Avez-vous une idée de l'origine du problème ?

Mille mercis.
 
WRInaute accro
Il reste encore à vérifier l'encodage des fichiers en utf-8 sans Bom
Et l'encodage de la base de donnée peut-être
 
Nouveau WRInaute
Merci de votre réponse.

Les fichiers sont bien encodés sans BOM. Il n'y a pas d'appels à une base de données. Ce que je ne comprends pas c'est que tous les tests sur tous les navigateurs sont bons. Il n'y a qu'internet explorer qui fait des manières...
 
WRInaute accro
C'est à l'affichage ou à l'enregistrement le problème ?
Si c'est au niveau du formulaire / enregistrement: tu as essayé en ajoutant l'attribut accept-charset="utf-8" au <form> ?
 
Nouveau WRInaute
merci de ton attention.

Je viens d'essayer
Code:
accept-charset="utf-8"
mais ça ne règle pas le problème.

Je te décris le fonctionnement : Des questions de langue sont posées sur la page. L'utilisateur entre sa réponse en utilisant des caractères latins et/ou non latins. Elle passe par un script Ajax qui permet d'afficher la réponse du fichier correcteur PHP dans un DIV. Ainsi l'élève reste toujours sur la même page. La réponse est traitée par un fichier PHP. Celui-ci compare la réponse entrée par l'élève à la réponse attendue. Quand la réponse n'inclut pas de caractères exotiques, la comparaison marche bien. Quand la réponse inclut des lettres exotiques, la comparaison ne fonctionne pas correctement. J'ai testé pour voir ce qui était envoyé lorsqu'on entrait une lettre accentuée du type ĝ ou ŭ. Je vois que la réponse accentuée perd ses accents durant l'envoi. D'où la correction erronée renvoyée par le fichier PHP. Par exemple : j'entre le mot " ĉerizo " dans le formulaire. Le test me montre que le fichier PHP reçoit le mot " cerizo " sans accent sur la lettre "c".

Schématiquement :

formulaire questionnaire ---> script Ajax ---> fichier PHP pour comparaison réponse utilisateur/réponse attendue---> affichage de la correction dans un DIV de la page formulaire de type "Votre réponse est exacte" ou "Votre réponse est inexacte".

J'imagine qu'internet explorer a besoin de quelque chose de plus que les autres navigateurs pour bien faire transiter les réponses accentuées sans perdre les accents... mais quoi ????
 
Nouveau WRInaute
spout a dit:
Tu as vérifié avec firebug si tous les entêtes HTTP étaient bons ?
Dans IE tu peux vérifier les requêtes HTTP avec Fiddler: http://www.fiddler2.com/fiddler2/
Pour savoir si c'est au niveau du JS ou au traitement serveur que ça bug.
J'ai téléchargé tout ça, mais je ne sais pas m'en servir et les explications en anglais m'échappent... !
 
Nouveau WRInaute
Ne trouvant pas de solution aux caprices d'Internet Explorer, j'ai ajouté à mon programme une fonction de remplacement des caractères accentués et maintenant ça fonctionne.
 
Nouveau WRInaute
Je serais intéressé par ton code et ton principe, car je butte sur le même problème depuis 1 journée!

Merci!! :)
 
Discussions similaires
Haut