PHP, MYSQL et caracters accentues - PHP - Programmation
Marsh Posté le 30-08-2005 à 23:53:29
il y a les fonctions mb_* si disponibles (mb_convert_encoding en particulier) qui gére potentiellement de nombreuses normes ou les utf8_encode et decode.
Mais t'es sur que tout ce qui a été saisie dans ta page est en "iso-8859-1" et que dans les header, il n'est pas indiqué une autre norme de codage?
Marsh Posté le 31-08-2005 à 00:03:45
Mes saisies proviennent de copier/coller depuis des fichiers texte enregistrés ds le bloc note - Windows.
Ce pbm. d'accent n'est - il pas courant?
Marsh Posté le 31-08-2005 à 00:20:17
En ascii 8 bits, windows et linux n'utilisent pas le même ordre des caractéres pour les codes >127. Les caractéres accentués sont supérieurs à 127. Ca pourait donc venir de là.
En passant par des pages web contenant des formulaires et en utilisant htmlentities() avant d'envoyer dans la base de donnée, ca évite ce probléme.
En encodant tout en UTF8 (par exemple) avant d'envoyer dans la base de donnée, ca corrige aussi ce probléme vu que l'UTF-8 a les caractéres dans un ordre précis.
Mais là, pour le moment, vu que je sais pas exactement ce que t'as utilisé pour envoiyer tes données dans la base ni quelles fonctions t'utilises en php pour travailler avec les données contenu dans la base de donnée, je ne peux pas te dire exactement ce que tu dois modifier pour éviter ça.
Marsh Posté le 31-08-2005 à 00:51:10
Vu pour htmlentities() mais je n'utilise pas de formulaire et sauf erreur d ema part les caractères accentués ne sont pas des entités html.
Vu et merci pour tes 1ère et dernière rmque, les fichiers txt m'ont été fournis, je ne connais donc pas leur provenance....
Eventuellement à suivre lorsque j'aurai + de précisions.
Marsh Posté le 31-08-2005 à 18:47:47
*** PROBLEME RESOLU ***
... et merci pour vos réponses.
Lorsque j'importe mes tables depuis le serveur à l'aide de PhpMyAdmin, le jeu de caractères du fichier est "utf8" par défaut; j'ai donc validé "latin1" et maintenant c'est OK :-) OUF!
Marsh Posté le 30-08-2005 à 23:48:46
Bjr,
Je saisie ds des champs d'une table des données texte.
Les accents ne passent pas - remplacés par des ? - lorsque je mets mes pages en ligne - serveur Freee - ,alors que l'affichage est correct en local - easyphp 1.6.
Mes pages contiennent en en -tête:
echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
Comment encoder/decoder les caractères accentués?
J'aimerai intervenir à la lecture des données ds la table, donc après la saisie.
Merci pour vos pistes !