A voir également:
- Car. accentués remplacés par "?" PHP/MyS
- Remplacer disque dur par ssd - Guide
- Easy php - Télécharger - Divers Web & Internet
- Remplacer par word - Guide
- Remplacer windows 7 par windows 10 - Accueil - Mise à jour
- Php?id=1 - Forum PHP
8 réponses
monkey_monk
Messages postés
641
Date d'inscription
mercredi 1 juillet 2009
Statut
Membre
Dernière intervention
10 août 2012
130
28 août 2009 à 00:41
28 août 2009 à 00:41
Bonjour,
je ne suis pas un spécialiste en la matière mais je sais qu'il arrive parfois que le jeu de caractère change entre ta bdd et ton php... il faudrait voir niveau config.
En gros tu devras transformer les infos de ta bdd pour les lire via ton php et puis faire l'inverse pour les placer dans ta bdd.
Je ne suis pas d'une grande aide mais j'espère avoir un peu fait avancer le problème !
Bon courage ! :D
je ne suis pas un spécialiste en la matière mais je sais qu'il arrive parfois que le jeu de caractère change entre ta bdd et ton php... il faudrait voir niveau config.
En gros tu devras transformer les infos de ta bdd pour les lire via ton php et puis faire l'inverse pour les placer dans ta bdd.
Je ne suis pas d'une grande aide mais j'espère avoir un peu fait avancer le problème !
Bon courage ! :D
Oui, c'est un truc comme ça qu'il faut faire. je vais finir par les mettre dans la base sous la forme de caractères html (é etc.) et les décoder à la lecture mais ce qui m'arrive est vraiment étrange parce que je ne vois pas du tout la différence entre ce que je fais dans cette table et ce que je fais dans d'autres tables où ça marche très bien.
Bonjour
j'ai essayé plusieurs solutions comme passer de "latin1_general_ci" à "utf8_general_ci"
Il ne faut pas "essayer", il faut te décider à travailler en latin ou en utf8 et en tenir compte à tous les niveaux.
. encodage dans ton éditeur de texte pour écrire tes pages (php/html)
. balise meta "Content-Type" dans tes pages html
. collation de tes tables mysql
. requête SET NAMES UTF8 si tu travailles en utf8
(j'espère que je n'en oublie pas)
Tant que tu essaieras de jouer sur un seul de ces paramètres, il faut t'attendre à des problèmes.
j'ai essayé plusieurs solutions comme passer de "latin1_general_ci" à "utf8_general_ci"
Il ne faut pas "essayer", il faut te décider à travailler en latin ou en utf8 et en tenir compte à tous les niveaux.
. encodage dans ton éditeur de texte pour écrire tes pages (php/html)
. balise meta "Content-Type" dans tes pages html
. collation de tes tables mysql
. requête SET NAMES UTF8 si tu travailles en utf8
(j'espère que je n'en oublie pas)
Tant que tu essaieras de jouer sur un seul de ces paramètres, il faut t'attendre à des problèmes.
Après quelques essais, si tu as l'impression que ça vient d'une requête, je pense que le formulaire d'où vient la donnée doit avoir un charset différent (ou absent). Le ?trange" est typique des informations saisies en latin (iso-8859-1) mais affichées en utf8
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Les données ne viennent pas d'un formulaire mais d'un fichier texte que je lis par un file_get_contents.
Par acquis de conscience j'ai essayé en entrant des accents en dur comme dans l'exemple que j'ai donné :
$sql="INSERT INTO matable (monchamp) VALUES('étrange')";
$req=mysql_query($sql);
Et ça marche pas, évidement si je lance la requête INSERT INTO matable (monchamp) VALUES("étrange") dans phpmyadmin ça marche très bien.
Bon, j'ai commencé à modifier mes scripts en stockant les infos avec un htmlentities pour remplacer les accents et ça marche mieux
Par acquis de conscience j'ai essayé en entrant des accents en dur comme dans l'exemple que j'ai donné :
$sql="INSERT INTO matable (monchamp) VALUES('étrange')";
$req=mysql_query($sql);
Et ça marche pas, évidement si je lance la requête INSERT INTO matable (monchamp) VALUES("étrange") dans phpmyadmin ça marche très bien.
Bon, j'ai commencé à modifier mes scripts en stockant les infos avec un htmlentities pour remplacer les accents et ça marche mieux
ça marche mieux mais ça cache le fond tu problème...
visiblement, ta source de données (fichier) et ton éditeur sont en iso8859-x alors que ton affichage est en utf-8. Ta solution est boîteuse et tu vas désormais voir & eacute; dans ta base à la place des é...
Alors que PHP et mysql fournissent tous les moyens d'avoir un affichage clair à tous les niveaux
visiblement, ta source de données (fichier) et ton éditeur sont en iso8859-x alors que ton affichage est en utf-8. Ta solution est boîteuse et tu vas désormais voir & eacute; dans ta base à la place des é...
Alors que PHP et mysql fournissent tous les moyens d'avoir un affichage clair à tous les niveaux
Je sais que c'est boiteux mais au moins ça va me permettre d'avancer quitte à revenir plus tard sur ce problème. Il est tout de même étrange que sur d'autres tables qui n'ont apparemment pas de différence avec celle qui me pose un problème ça marche très bien. Je n'ai pourtant pas l'impression de faire quelque chose de particulier.
Merci de ton aide.
Merci de ton aide.