[Réglé] Caractères spéciaux BDD vers HTML

Caractères spéciaux BDD vers HTML [Réglé] - PHP - Programmation

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
Reply

Marsh Posté le 09-03-2011 à 09:01:20   

Reply

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.

Reply

Marsh Posté le 09-03-2011 à 14:32:37    

Déjà essayé. Pas marché :(
Une autre suggestion ?
 
Merci beaucoup.

Reply

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)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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.

Reply

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


Message édité par rufo le 10-03-2011 à 14:48:30

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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

Reply

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é...

Reply

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

Reply

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 :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-03-2011 à 10:25:38   

Reply

Marsh Posté le 14-03-2011 à 11:23:20    

keusty78 a écrit :

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


:non: 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.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 14-03-2011 à 15:02:41    

Merci beaucoup. Cela fonctionne.

Reply

Marsh Posté le 14-03-2011 à 17:48:14    

merci MEI pour ce petit conseil je ne savais pas du tout

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed