Précédent   Forum des professionnels en informatique > PHP > Outils > phpMyAdmin
phpMyAdmin Forum d'entraide sur l'outil phpMyAdmin : installation, utilisation, etc. Avant de poster -> Cours phpMyAdmin
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2006, 16h56   #1
Invité de passage
 
Inscription : juillet 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 3
Points : 2
Points : 2
Par défaut PhpMyAdmin et UTF-8

Bonjour,

J'ai un soucis avec PhpMyAdmin (2.8.2): j'ai une base Mysql (5.0.22) dont les données sont en utf-8. Malheureusement je n'arrive pas à configurer PhpMyAdmin pour faire en sorte que
1/ les données lues via PhpMyAdmin soient correctement affichées (e.g. pas de de Ä©)
2/ les données sauvées via PhpMyAdmin soient effectivement sauvées en utf-8 dans la base

J'ai trouvé énormement de posts sur le net à ce sujet mais aucune réponse au point que je me demande si c'est possible...

Merci pour votre aide!
anabamout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2006, 12h06   #2
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 72
Points : 25
Points : 25
Par défaut Même soucis

Effectivement l'utf8 avec phpmyadmin c'est un gros soucis, je rencontre le même problème que toi malgré une recherche approfondie j'ai pas réussi à corriger cela. Donc je serai attentif si tu arrives à remédier à cela.
Florent08800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 09h11   #3
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 365
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 365
Points : 35
Points : 35
même problème. phpmyadmin n"insère pas, n'affiche pas et ne sauvegarde pas en utf-8. Je suis obligé d'insérer mes données depuis un script php et la c'est ok. Mais même comme ca les caractères restent corrompu à l'affichage dans phpmyadmin.
gforce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 09h30   #4
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 365
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 365
Points : 35
Points : 35
solution

http://www.developpez.net/forums/sho...5&postcount=15
gforce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2007, 12h28   #5
Invité régulier
 
Inscription : janvier 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 24
Points : 8
Points : 8
Merci pour le lien vers cet excellent article, mais je l'ai déjà lu.

Depuis hier, j'ai dû lire des centaines de tutos ou autres sur le sujet.

Actuellement, je n'ai toujours pas la réponse à mon problème.

Mais chez vous, ça fonctionne ?

-Je créé une nouvelle table (charset utf8 et collation utf8_general_ci)
-Je créé un champ "nom"
-j'insère quelques enregistrements (a, b, c, d, e, é, f, )
-Je lance un SELECT nom ORDER BY nom

Et ça foire... j'obtiens a, é, b, c, d, e, f

Il est où, le problème
Là, j'en ai vraiment marre.

Une question : quel IDE pour administrer MySQL ? Avec MySQL Administrator et Query Browser, si je saisi "é" dans une table utf8, l'insertion ne semble pas être en utf-8 (comme avec PHPMyAdmin)....
Dimitri01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 18h41   #6
Invité de passage
 
Inscription : octobre 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3
Points : 3
Points : 3
Phpmyadmin gère parfaitement l'utf-8. ;-)

Ce qui ne gère pas l'utf-8 ici, c'est votre code PHP à mon avis. Avez-vous pensé à faire un appel sql du type mysql_query("SET NAMES 'UTF8'") dans votre code avant d'insérer ou de lire des données ?
Si vous utilisez un framework qui s'occupe de la connexion à votre place, cette valeur est normalement configurable (exemple : 'encoding' => 'utf8' dans cakephp quand on configure la connexion).

Si vous ne l'avez pas fait, ce que vous insérez/lisez n'est pas en utf-8, et c'est phpmyadmin qui a raison, en vous affichant les données réellement écrites en base.

Citation:
Envoyé par gforce
Surtout à ne pas faire ... ça force phpmyadmin à lire les données de façon erronée.

Pour le problème de Dimitri, je vais tester chez moi si ça me donne le même résultat.
Edit : Après test, ça fonctionne bien chez moi. Tu fais ton select dans phpmyadmin (pas modifié par ce qui est écrit dans le post plus haut) ? Dans ton code php en ayant précisé le set names ?
Xargos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2007, 20h08   #7
Invité régulier
 
Inscription : décembre 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 6
Points : 6
Points : 6
Envoyer un message via ICQ à Goelano Envoyer un message via Yahoo à Goelano
Par défaut Une solution !

Merci pour vos infos, qui m'ont permis de trouver une solution pour le même problème : mes accents é, è, à, ç et autres étaient remplacés par des carrés, dans le site ouèbe chez Free (http://sivom.ambert.free.fr/), que je suis en train de créer. Je travaille avec Windows Vista, EasyPHP 2.0b1, phpMyAdmin 2.9.11, et chez free.fr avec phpMyAdmin - 2.11.3. Par défaut, j'ai positionné tous les choix à utf8_general_ci, lorsque c'était demandé, et j'ai même choisi UTF-8 dans les exports en CSV, car mes données (noms de villes et communes, par exemple) sont dans un tableau d'Open Office 2.2. Mais toujours des carrés à la place des accents.
Grâce à ce forum, j'ai trouvé une solution (peut-être pas la meilleure), mais qui me convient pour le moment.

Dans Open Office 2.2 :
- tableau.calc de Open Office à l'écran
- export de la feuille courante en .csv : fichier, enregistrer sous, type .csv, cocher éditer les filtres, choisir 1252-Win ou Latin1
- ne pas oublier séparateur de champ et séparateurs de texte
- on obtient toto.csv

Dans phpMyAdmin 2.9.1.1 :
- la table ad hoc existe (toto), mais vide
- choisir Importer
- parcourir pour trouver toto.csv
- jeu de caractères du fichier : latin1
- ne pas oublier nombre d'enregistrements et option CSV
- Exécuter

- choisir Afficher, pour voir les données arrivées dans la table ad hoc ; là les accents sont bien visibles : é, è, à, °, ç, etc
- choisir Exporter
- cocher SQL, compatibilité NONE, cocher Transmettre
- Exécuter
- on obtient toto.sql

- choisir Supprimer : oui
- choisir Importer
- parcourir pour trouver toto.sql
- jeu de caractères du fichier : latin1 (ou Windows 1252)
- ne pas oublier option sql, compatibilité NONE
- Exécuter

- choisir Afficher, pour voir les données arrivées dans la table ad hoc : là les accents s'affichent Ä© et autres à ou ° ; mais quand je consulte mon site en local (EasyPHP, Web local), les accents sont bien écrits é, à et ° :

Chez free.fr avec phpMyAdmin - 2.11.3 :
- éventuellement supprimer la table ad hoc (toto), si elle existe déjà
- choisir Importer
- parcourir pour trouver toto.sql
- jeu de caractères du fichier : utf8
- ne pas oublier option sql, compatibilité NONE
- Exécuter

- choisir Afficher, pour voir les données arrivées dans la table ad hoc : là les accents s'affichent Ä© et autres à ou ° ; mais quand je consulte mon site en vrai avec mon navigateur (IE 7 ou Safari 3.0.4), les accents sont bien écrits é, à et ° : re-
Goelano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 09h39   #8
Futur Membre du Club
 
Inscription : novembre 2007
Messages : 29
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 29
Points : 17
Points : 17
Citation:
Envoyé par Xargos Voir le message
Phpmyadmin gère parfaitement l'utf-8. ;-)

Ce qui ne gère pas l'utf-8 ici, c'est votre code PHP à mon avis. Avez-vous pensé à faire un appel sql du type mysql_query("SET NAMES 'UTF8'") dans votre code avant d'insérer ou de lire des données ?
Si vous utilisez un framework qui s'occupe de la connexion à votre place, cette valeur est normalement configurable (exemple : 'encoding' => 'utf8' dans cakephp quand on configure la connexion).

Si vous ne l'avez pas fait, ce que vous insérez/lisez n'est pas en utf-8, et c'est phpmyadmin qui a raison, en vous affichant les données réellement écrites en base.



Surtout à ne pas faire ... ça force phpmyadmin à lire les données de façon erronée.

Pour le problème de Dimitri, je vais tester chez moi si ça me donne le même résultat.
Edit : Après test, ça fonctionne bien chez moi. Tu fais ton select dans phpmyadmin (pas modifié par ce qui est écrit dans le post plus haut) ? Dans ton code php en ayant précisé le set names ?
On doit pas avoir la même version parce j'ai beau tout mettre en utf-8, (interclassement table, interclassement attribut, au démarrage de pma, et même vérifier si Firefox est en utf-8 et si le code source affiche bien en utf-8)
mais pma se borne à afficher des caractères bizarres en lieu et place de caractères spéciaux en utf-8. Or c'est bien de l'UTF-8...

Bizarrement la solution présentée (bien qu'ordonnant d'afficher le contenu en latin1) permet d'afficher ET d'entrer de nouvelles valeurs en UTF-8....

J'en perds mon latin....
si j'encode le résultat en Json, il me code le caractère é : \u00e9 ce qui est bien de l'unicode
mattstriker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 11h20   #9
Membre régulier
 
Inscription : septembre 2006
Messages : 146
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : septembre 2006
Messages : 146
Points : 87
Points : 87
Même soucis, tous mes paramètres sont bien configurés. L'ajout dans la BDD avec PHP se fait bien en utf8 mais phpMyAdmin lit les données en iso. Et aucun souci lors de l'extraction de la base avec PHP.
__________________
Il y a 10 types de personnes, celles qui connaissent le binaire, et les autres...
Bloodscalp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 00h35   #10
Candidat au titre de Membre du Club
 
Inscription : juillet 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 27
Points : 10
Points : 10
Merci beaucoup !!!

J'ai pu résoudre ce problème grâce à cette commande que j'utilise maintenant après avoir ouvert chaque connexion :-)

SET NAMES 'UTF8'
delcedo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2008, 11h41   #11
Membre régulier
 
Avatar de isarian
 
Développeur informatique
Inscription : février 2005
Messages : 249
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 249
Points : 73
Points : 73
Envoyer un message via MSN à isarian
tu fais cette commande ou?

Merci d'avance

SPke
isarian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2008, 13h27   #12
Invité régulier
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 7
Points : 7
Citation:
Envoyé par isarian Voir le message
tu fais cette commande ou?

Merci d'avance

SPke
Si c'est en php, je fais comme ça :
Code :
1
2
3
4
5
 
     $link = mysql_connect ($host, $user, $password) ;
     if (!$link) die("Impossible de se connecter à MySql");
     mysql_select_db ($database) or die ("Pb");
     mysql_query("SET NAMES 'utf8'") ;
nicolas.poulain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h09.


 
 
 
 
Partenaires

Hébergement Web