Création
d'entreprise
Posez votre question Signaler

Problème: UTF-8 // PHP // phpmyadmin [Résolu]

pierre - Dernière réponse le 12 sept. 2011 à 18:33
Bonjour, alors ça fait 8 heures que je cherche uns solution, voici le problème:
J'ai des pages PHP qui envoi des données entrées par l'utilisateur vers un BD MySQL. Ces données sont ensuite affichées sur différentes pages PHP.
Tous les fichiers PHP sont en UTF-8, avec le META et Content-Header, toutes mes tables et colonnes sont en utf8_general_ci...
Si je tape " é " dans un mon formulaire, il s'affiche " é " dans phpmyadmin. Et une fois cette info sur la page de résultat PHP, il s'affiche bien: " é "...
Quelqu'un à une idée pourquoi mes pages PHP envoient et recoivent les donnée UTF-8 et les affichent correctement, alors que phpmyadmin, semble recevoir les même données UTF-8, met les affiche comme si c'était du ANSI (si j'ai bien compris toute ma lecture sur le sujet..)
Comment puis-je dire à phpmyadmin-MySQL que les données qu'il recoit sont du UTF-8...
Si je rentre manuellement dans phpmyadmin des infos, ex: é
Et bien il s'affiche bien dans phpmyadmin, mais j'ai un � dans l'affichage de ma page...
Merci pour votre aide
Lire la suite 

Problème: UTF-8 // PHP // phpmyadmin »

11 réponses
Réponse
+4
moins plus
Comme je l'explique dans un article (voir lien ci dessous) le SET NAMES permet de prévenir le SGBD (MySQL dans ce cas là) que les interactions se feront avec tel ou tel encodage.

Pour rétablir une cohérence de données dans vos tables il faut faire deux requêtes (c'est une petite astuce, voir l'article ci-dessous).
http://www.aquatz.com/Encodage-convertir-un-site-en-UTF8-PHP-MySQL_a36.html

Enfin n'hésitez pas à utiliser mb_detect_encoding en PHP pour savoir quel est l'encodage d'une chaîne de caractères.
fab - 26 janv. 2009 à 12:47
Eh bien j'avais suivi le tuto de franescu (merci) et terminé par le set names... et ça n'avais pas focntionné: ma bdd étzi toujours en latin 1 (ça disait utf8 mais l'affcihage des données prouvait iso8859-1...........)

j'ai ajouté dans le fichier php qui extrayait les données l mysql_query("SET NAMES 'utf8'"); et là ça marche!

Pourquoi???????

j'ai pourtant exécuté la requête set names ....

si qqun sait...........
Ajouter un commentaire
Réponse
+0
moins plus
Tu peux essayer dans un premier temps de forcer la conversion à utf-8 avant de stocker les données la bdd avec utf8_encode. Mais le problème est ailleurs.
mala - 25 janv. 2011 à 14:18
j'ai mis ce script après toutes mes connexion à ma base mais j'ai toujours les ? avec le losange noir... dans ma base, les données sont en utf8 et les accents sont tous lisibles mais quand je fais mb_detect_encoding($var); il affiche "ASCII"... je comprends plus rien. ma base est en utf8, mes php en utf8 mais l'affichage en ASCII... comment résoudre ce problème? HELP
Damien - 11 juin 2011 à 19:03
Même problème, même solution :

mysql_query("SET NAMES 'utf8'");

à rentrer dans le script de connexion à la base.

Merci beaucoup
hackira - 12 sept. 2011 à 18:33
Bonjour je cherche a résoudre ce même problème sauf que dans mon cas tout est encodé en UTF-8 (ma base et mes fichiers) mais en mettant le mysql_query("SET NAMES 'utf8'"); ca ne fonctionne absolument pas ...
Ajouter un commentaire
Ce document intitulé « Problème: UTF-8 // PHP // phpmyadmin » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?