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 !
Publicité
Posté le 30-08-2005 à 23:44:05
Kyle_Katarn
Posté le 31-08-2005 à 00:21:35
quand tu consulte ta base avec phpMyAdmin par exemple, tu as bien les accents ou pas ?
piedbleu
Posté le 31-08-2005 à 00:41:18
Oui oui.
En fait pour avoir un affichage en ligne correct, il faudrait que je remplace, dans ma base, ts les caractères accentués par les &eacu... équivalents.
Mes données texte ds ma base proviennent de copier/collés effectués à partir de fichier .txt que l'on m'a fourni.
Fry85
Posté le 31-08-2005 à 09:27:20
Sinon, à la sortie, tu peux utiliser la fonctions php htmlentities() qui va te traduire tes accents ds la base en code html à l'affichage.
piedbleu
Posté le 31-08-2005 à 12:06:37
Oui mais ça ne fonctionne pas, je ne pige pas trop pourquoi, encodage initial du texte?
Version initiale:
echo $txt; // les caractères accentués sont remplacés par des "?".
Version corrigée:
$txt = htmlentities($txt);
echo $txt; // meme rmque que ci - dessus !
Auriez - vous d'autres pistes? Merci!
tux11kin202
Posté le 31-08-2005 à 12:37:01
Tu peux pas mettre ton texte dans une variable php et lui appliquer un str_replace ("é","é",$texte) avant de le mettre dans ta bdd?
C'est comme ça que je m'en étais sorti...
Message édité par tux11kin202 le 31-08-2005 à 12:37:17
piedbleu
Posté le 31-08-2005 à 18:20:36
Oui, et donc à faire pour chaque type d'accent .... ou autre type de caractère; par ex. "n°" ne passe pas non plus bien sûr ...
Y aurait - il un moyen d'intervenir après l'extraction des données de la table?
Y a t -il un en - tête différent de celui que j'indique ci -dessus à faire figurer?
piedbleu
Posté le 31-08-2005 à 18:47:20
*** 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!
Thibs10
Posté le 04-12-2006 à 18:48:07
J'ai aussi un problème de ce type avec un serveur mySQL 4.1 (aussi bien sous Linux que sous Windows)