Caractères spéciaux BDD vers HTML [Réglé] - PHP - Programmation
Marsh Posté le 09-03-2011 à 13:57:59
Essaye de convertir ton fichier en utf-8 pour voir si ça permet de résoudre ton problème.
Marsh Posté le 09-03-2011 à 14:32:37
Déjà essayé. Pas marché
Une autre suggestion ?
Merci beaucoup.
Marsh Posté le 09-03-2011 à 17:43:30
Dans ta fonction de connexion à la BD, exécute la requête suivante :
"SET CHARACTER SET latin1" (ou remplace latin1 par utf-8)
Marsh Posté le 10-03-2011 à 14:01:45
Oui, cela a résolu le souci.
Cependant, mon second souci n'est pas résolu.
Sur ma page d'inscription, quand quelqu'un choisit un pseudo (par exemple) avec caractères spéciaux (éà...), et que je fais echo $pseudo; , celui-ci s'affiche correctement ("Eléonore" par exemple).
Cependant, avec un INSERT INTO dans ma base de données, il s'affiche mal sur PHPMYADMIN et par la suite ("chloé" par exemple). Alors qu'à la fois ma page et ma base de données sont en utf-8 !!!
Merci par avance de votre aide.
Marsh Posté le 10-03-2011 à 14:47:38
Est-ce que tu as bien configuré les variables d'environnement du my.ini (windows) ou my.cnf (linux)? De même, est-ce que ta BD est en utf-8? Idem pour chaque table, idem pour chaque champ texte?
http://dev.mysql.com/doc/refman/5. [...] ction.html
Marsh Posté le 10-03-2011 à 17:13:27
Comment vérifier sur PHPMYADMIN qu'une table ou qu'un champ soit bien en utf-8 ?
Car la BD elle est bien en utf-8 et le my.cnf est bien configuré.
merci par avance
Marsh Posté le 10-03-2011 à 22:54:01
J'ai trouvé la réponse à ma question.
Tout est bien en utf-8 : ma page, ma bdd, ma table et mon champ... Pourtant, les caractères spéciaux s'affichent bien sur ma page et mal dans la base de données.
Une autre idée ?
Un peu désespéré...
Marsh Posté le 12-03-2011 à 16:57:19
dans ta base de donné tu met : latin1_swedish_ci
et dans ta page de connexion a ta bdd apres mysql_select_db($BaseDeDonnee) tu rajoute cette ligne :
mysql_query("SET NAMES UTF8" );
normalement tu devrais plus avoir de problemes
Marsh Posté le 14-03-2011 à 10:25:38
C'est pas très logique de mettre la BD en latin1_swedish_ci (alors qu'elle est en uft-8) et de faire une connexion dans un autre charset je trouve
Marsh Posté le 14-03-2011 à 11:23:20
keusty78 a écrit : dans ta base de donné tu met : latin1_swedish_ci |
C'est déconseillé par PHP, mysql_set_charset() ( http://php.net/manual/en/function. [...] harset.php ) ou mysqli::set_charset() ( http://www.php.net/manual/en/mysqli.set-charset.php ) ...
C'est +/- équivalent, mais surtout beaucoup plus propre.
Marsh Posté le 09-03-2011 à 09:01:20
Bonjour à tous,
Je vois pas mal de problèmes de ce style sur Google et plusieurs forums, mais rien qui ne permette de solutionner mes soucis...
1- Sur une table de ma BDD (qui est en utf-8), j'ai des champs sur lesquels les caractères spéciaux apparaissent sans souci sur PhpMyAdmin. Par exemple : "éléphant", avec l'accent comme il faut. Par contre, quand je les affiche sur ma page PHP sur Internet, avec echo ou autre, ils se transforment en point d'interrogation ! J'ai essayé <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> et <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> et le problème reste entier. Qu'en pensez-vous ?
2- Lors de l'inscription à mes sites, il y a un champ "pseudo" par exemple, transmis ensuite à ma base de données (toujours en utf-8). Si le pseudo du membre est accentué ou caractères spéciaux, il se transforme en Céleste (pour Céleste) par exemple sur PHPMYADMIN. Comment résoudre ça ?
Merci par avance de votre précieuse aide.
Antoine
Message édité par ingeniomatique le 14-03-2011 à 15:02:59