Je me permets d'écrire ici car je commence à être désespérer pour trouver une solution.
Le contexte :
Je travail sur un formulaire dynamique, ou le client doit sélectionner une adresse à l'aide d'une liste déroulante (4 listes plus précisément avec le code postale, la ville, la rue et le numéro de rue). Les adresses sont préalablement installé dans une basse de données Mysql. J'utilise de l'Ajax pour que, lorsque le client sélectionne un code postale, il n'y ai que les villes rattachés qui s'affichent, ainsi de suite...)
Le problème :
Lorsque le client sélectionne son adresse, dès lors qu'il y a un accent dans la rue, le numéro ne s'affiche pas, et ça que lorsque le client est sur le navigateur Internet Explorer (Toutes versions confondues) Sur les autres navigateurs testés, (Firefox, Chrome, Safari) il n'y a pas de problèmes.
J'ai donc procédé par étape pour repérer le problème, j'ai bien vérifié que ma base de données était en UTF-8 absolument partout (Interclassement de communication, de la table, des données), j'ai aussi vérifié que le fichier (que j'importe en .csv dans la bdd) était au bon format, aucuns problèmes, je n'ai pas de soucis lorsque j'effectue la lecture de la table manuellement, tout est propre avec les bons accents.
J'ai fouillé sur Internet, j'ai mis des headers et des métas avec un charset="utf-8" dès que je pouvais (quand j'appel le script js, sur l'html, etc...)
Je pense que le problème est causé lorsque mon script Ajax retourne les données de la table, je me suis amusé à utiliser une fonction js pour encoder les variables en dur que je récupère de la table, et la miracle, ça fonctionne, MAIS, ça ne fonctionne pas pour toutes les rues. J'ai en attendant utiliser un userAgent pour que je fasse un encodage dès lors que Internet Explorer est détecté, mais c'est une solution impossible à garder sur le long terme, et en plus ça ne fonctionne pas pour toutes les rues. J'ai aussi essayer de remplacer l'UTF-8 par de l'ISO-8859-1, j'ai tout modifié mais j'ai exactement le même problème...
Vous êtes réellement mon dernier espoir pour trouver une solution.
Je remercie d'avance ceux qui s'attarderont sur mon sujet,
Si vous avez besoin de quoi que ce soit, (bouts de codes ou autre, je répondrais rapidement)
Sachant que ça vient d'IE, j'avoue je ne suis pas sûr que quiconque ait envie de se pencher sur le problème, pour découvrir que c'est dû à un bug ou un non respect des spécifications du JS... Désolé
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Si seul IE rencontre ce problème...c'est probablement que le souci ne vient pas des étapes suivantes. Après, ça ne coute pas grand chose de s'assurer que le reste de la pipeline se comporte correctement.
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Les données concernées ne viennent que de la base de donnée oui, j'ai clairement mis PARTOUT le charset, lorsque je vais chercher les données, lorsque je les reçois, sur tout les scripts appelés... (aussi lorsque j’appelle la BD...) Le plus fou c'est que même si je force l'encodage en utf8 à la main, en mettant un "encode_utf8" sur ma variable, il y a par exemple le caractère "É" qui n'est pas pris en compte, mais sinon ça fonctionne, mais clairement j'ai fait toutes les vérifications 3 - 4 fois, je pensais être passé à coté de quelque chose que je ne connaissais pas étant donné que ça ne fait pas très longtemps que je code, mais j'ai l'impression que c'est juste IE qui fou la *****
Par contre pour te répondre BoNux, je ne connaissais pas l'outil network, je vais regarder ça de plus prêt.
Si je ne trouve pas, je pense que je vais passer pas d'autres moyens (effacer les caractères spéciaux lorsque j'importe mon fichier pas exemple), et je vais patienter je pense...
Encore merci pour les solutions que vous m'avez apportées
<?php
//connexion à la base de donnée
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mabdd;charset=utf8', 'root', 'root');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
Sinon, j'ai regardé l'onglet Réseau, j'ai bien mes données envoyées correctement, avec le bon encodage, dans mes variables, c'est quand le Ajax les envoies dans mon script PhP que ça ne fonctionne plus apparemment...
Mais ça ne change rien...(j'ai essayé en laissant le charset='utf-8' et en l'enlevant...
A savoir que le header est situé dans le fichier Php ou sont situés mes requêtes SQL avant d'appeler ma BD.
Joris
Problèmes d'encodage Javascript - Ajax
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.