utf 8 and co
Posté : 24 août 2010, 15:55
Bonjour,
Bon, je ne sais vraiment pas si je suis dans la bonne section, vu que je n'arrive pas à comprendre à quel niveau ça coince.
J'ai une table dans une base de données avec un nom de profession, genre "comédien" par exemple.
Dans les définitions de la base je vois bien utf8_bin.
Dans mes pages crées avec php, je déclare bien en entête que je suis en utf-8.
Dans un script php, je fais lire toutes les professions présentes dans ma table, puis afficher dans une liste de choix html.
Lorsque l'utilisateur choisit une profession et envoi, je vais traiter en fonction de la profession choisie.
Bien entendu, par sécurité, jje teste d'abord que la profession envoyée par POST est bien présente dans ma table. Puis j'affiche des infos différentes selon cette profession.
Cela fonctionnait très bien !
Je suis sous ubuntu. Juste avant de partir en vacances, j'ai fais une mise à jour ubuntu, pour passer à la dernier version lts.
En revenant de vacances, ce qui fonctionnait ne fonctionne plus.
Je m'explique :
Lorsque je lis donc ma table contenant toutes les professions, et que je les fais afficher dans ma liste de choix de ma page html, "comédien" n'est pas affiché correctement, mais avec le caractère habituel de non_imprimable, c.a.d. grosso-modo "com?dien".
Du coup, si l'utilisateur choisit cette profession dans la liste des professions et envoi, lors du test expliqué plus haut pour voir si la profession envoyé par POST est présente dans ma table mysql, ce n'est plus le cas, il ne la trouve plus.
Bien entendu, s'il est choisit une profession sans caractère accentué, ça fonctionne toujours.
Le plus fort (je trouve), c'est que j'ai une autre liste de choix créée à partir du liste de personne, et de leur noms.
L'un deux s'appelle "Gaël", et il s'affiche bien !
Je me doute que cela vient de la mise à jour. Php a été mis à jour, puisque j'ai même été obligé d'enlever toutes les fonctions ereg, car sinon j'ai un message DEPRECATED.
Mais à votre avis, d'où cela peut-t'il venir ?
Merci de votre aide
Michel
Bon, je ne sais vraiment pas si je suis dans la bonne section, vu que je n'arrive pas à comprendre à quel niveau ça coince.
J'ai une table dans une base de données avec un nom de profession, genre "comédien" par exemple.
Dans les définitions de la base je vois bien utf8_bin.
Dans mes pages crées avec php, je déclare bien en entête que je suis en utf-8.
Dans un script php, je fais lire toutes les professions présentes dans ma table, puis afficher dans une liste de choix html.
Lorsque l'utilisateur choisit une profession et envoi, je vais traiter en fonction de la profession choisie.
Bien entendu, par sécurité, jje teste d'abord que la profession envoyée par POST est bien présente dans ma table. Puis j'affiche des infos différentes selon cette profession.
Cela fonctionnait très bien !
Je suis sous ubuntu. Juste avant de partir en vacances, j'ai fais une mise à jour ubuntu, pour passer à la dernier version lts.
En revenant de vacances, ce qui fonctionnait ne fonctionne plus.
Je m'explique :
Lorsque je lis donc ma table contenant toutes les professions, et que je les fais afficher dans ma liste de choix de ma page html, "comédien" n'est pas affiché correctement, mais avec le caractère habituel de non_imprimable, c.a.d. grosso-modo "com?dien".
Du coup, si l'utilisateur choisit cette profession dans la liste des professions et envoi, lors du test expliqué plus haut pour voir si la profession envoyé par POST est présente dans ma table mysql, ce n'est plus le cas, il ne la trouve plus.
Bien entendu, s'il est choisit une profession sans caractère accentué, ça fonctionne toujours.
Le plus fort (je trouve), c'est que j'ai une autre liste de choix créée à partir du liste de personne, et de leur noms.
L'un deux s'appelle "Gaël", et il s'affiche bien !
Je me doute que cela vient de la mise à jour. Php a été mis à jour, puisque j'ai même été obligé d'enlever toutes les fonctions ereg, car sinon j'ai un message DEPRECATED.
Mais à votre avis, d'où cela peut-t'il venir ?
Merci de votre aide
Michel