Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer : 
Importations MySql avec accents 
Cette formation est une parenthèse intéressante dans la progression de l'apprentissage des techniques de programmation serveur avec le 
langage Php . Il est parfois nécessaire de récupérer des sources externes encodées différemment et gérant les caractères latins. Nous allons voir que leur 
importation  peut s'avérer problématique. Mais nous allons livrer une astuce, simple de mise en oeuvre, qui règle le problème.
Défauts d'encodage 
Dans la vie d'un site Web, les administrateurs peuvent être amenés à engager des modifications de structure importantes. Dans ces conditions, les CMS, très productifs, sont souvent choisis. Ils proposent des données architecturées autour de nombreuses tables reliées entre elles. Pour prolonger la durée de vie du site, il est nécessaire de récupérer les riches informations de l'ancien modèle. Mais lorsque les 
systèmes d'encodage  ne sont pas compatibles, de mauvaises surprises surgissent. C'est ce que nous proposons de constater dans un premier temps.
Il s'agit donc d'un 
fichier au format Sql  résultant d'une extraction.
Cliquer droit sur le fichier téléchargé, 
Dans le menu contextuel, choisir de l'ouvrir avec un éditeur tel que le Notepad ++, 
Nous y trouvons des 
instructions Sql  classiques. Elles permettent premièrement d'engager la création d'une table (CREATE TABLE) avec la définition et le typage de ses champs. Ensuite, c'est l'insertion des données (INSERT INTO) qui entre en jeu.
Cette table, comme son nom l'indique, archive des produits d'un magasin. Et pour pouvoir l'exploiter, nous devons la réceptionner dans une 
base de données MySql à créer . Pour ce faire, l'interface d'
EasyPhp  ou autre émulateur doit être affichée. Les deux serveurs, 
Http  et 
Database  doivent être démarrés.
Cliquer alors sur le bouton Open  du module MySql Administration, 
Nous accédons ainsi à l'interface de 
PhpMyAdmin .
Dans le volet de gauche, cliquer sur le lien Nouvelle base de données , 
La nommer Magasin  et choisir l'interclassement utf8_general_ci , 
Puis, cliquer sur le bouton Créer , 
La 
base de données magasin  apparaît désormais listée dans le volet de gauche.
Cliquer sur son lien pour la sélectionner, 
Puis, en haut de l'interface de PhpMyAdmin , cliquer sur l'onglet Importer , 
Dans la section Fichier à importer , cliquer sur le bouton Parcourir , 
Dans la boîte de dialogue qui suit, pointer dans le dossier de téléchargement, 
Puis, double cliquer sur le fichier magasin_import.sql , 
En bas de l'interface, cliquer alors sur le bouton Exécuter  pour procéder à l'importation, 
Le processus peut durer plusieurs dizaines de secondes. A l'issue, un message d'erreur apparaît. Nous pouvons l'ignorer. La mauvaise gestion des accents est en cause.
Dans le volet de gauche, déployer l'arborescence de la base de données magasin , 
Puis, cliquer sur le lien de sa table products , 
La table et ses données, issus du fichier Sql, ont finalement été importées. 
PhpMyAdmin  annonce 453 enregistrements résultants.
Si vous consultez le contenu du 
champ products_desc_1  notamment, vous constatez la présence d'anomalies. La lettre 
e avec accent grave  est mal encodée. Comme elle n'est pas interprétée, elle est remplacée par un point d'interrogation. En conséquence, ces données ne sont pas exploitables. L'importation a effectivement échoué dans la mesure où les accents ne peuvent pas être restitués.
Même si vous tentez de nouveau le processus en modifiant certains paramétrages, le résultat serait le même. Vous pourriez par exemple essayer un interclassement pour les caractères latins à la création de la 
base de données . Vous pourriez définir un système d'encodage pour gérer les accents à l'importation (iso-****-x). A l'issue, la sentence serait la même.
Gérer les accents à l'importation 
La technique consiste à corriger l'anomalie à la source. Il s'agit de convertir le 
fichier Sql  au 
format Utf8 . Il sera ainsi en conformité avec celui de la 
base de données . Rappelons-le, le 
format UTF8  est le format standard conseillé. Malgré les apparences, il simplifie grandement la gestion des caractères latins, dont les accents. Avant toute chose, nous devons commencer par supprimer la table créée lors du processus d'importation.
Dans le volet de gauche, cliquer sur le lien de la table products  pour la désigner, 
En haut de l'interface de PhpMyAdmin , cliquer sur l'onglet Opérations , 
Dans la section Supprimer les données ou la table, cliquer sur le lien Supprimer la table , 
Valider le message d'alerte qui suit pour confirmer la suppression, 
La base de données magasin subsiste mais son arborescence est vide désormais.
Afficher de nouveau le fichier magasin_import.sql  dans l'éditeur Notepad, 
En haut de l'éditeur, cliquer sur le menu Encodage , 
Dans la liste, choisir Convertir en UTF-8 , 
Le fichier est désormais converti dans un système a priori compatible. Si vous le parcourez, vous remarquez que les accents n'ont pas changé.
Enregistrer les modifications (CTRL + S), 
Désormais, revenir sur l'interface de PhpMyAdmin , 
Dans le volet de gauche, sélectionner la base de données MySql Magasin , 
En haut de l'interface de PhpMyAdmin, cliquer sur l'onglet Importer , 
Dans la section Fichier à importer , cliquer sur le bouton Parcourir , 
Puis, double cliquer sur le fichier magasin_import.sql , 
Enfin, en bas de l'interface, cliquer sur le bouton Exécuter  pour procéder à l'importation, 
Là encore, le processus peut durer plusieurs secondes, mais il est plus rapide que le précédent. La gestion des accents n'est plus un problème. Et d'ailleurs, à l'issue du traitement, plus aucun message d'erreur ne s'affiche. Au contraire, un message de succès confirme le bon déroulement de l'opération.
Dans le volet de gauche, cliquer sur le lien de la table Products  pour afficher son contenu, 
Cette fois, en consultant le contenu du 
champ products_desc_1 , vous remarquez que les 
accents  ont parfaitement été gérés à l'
importation , grâce à la 
conversion au format UTF-8  réalisée en amont. Il subsiste quelques points d'interrogation dans cette table. Ils ne traduisent pas un souci d'encodage. Ils existaient déjà dans le fichier d'origine, sans doute à cause d'une exportation mal maîtrisée.
Gérer les accents à l'exportation 
Le problème se pose aussi dans l'autre sens. Nous souhaiterions exporter ces données au 
format universel Csv . De cette manière, il est possible de réceptionner les informations dans des colonnes différentes d'une 
feuille Excel , grâce aux séparateurs de liste. Nous allons l'apprendre à nos dépends, bien que les 
accents  soient désormais parfaitement 
encodés , le résultat de l'exportation peut surprendre.
Dans le volet de gauche, sélectionner la table products , 
En haut de l'interface de PhpMyAdmin, cliquer sur l'onglet Exporter , 
Dans la section Format, choisir le modèle CSV  avec la liste déroulante, 
Puis, en bas de l'interface, cliquer sur le bouton Exécuter , 
Dans la boîte de dialogue qui suit, choisir d'enregistrer le fichier dans le dossier de téléchargement en conservant le nom proposé par défaut, 
Dans le dossier de téléchargement, double cliquer sur le fichier résultant pour l'ouvrir dans Excel , 
En effet, les accents ne sont pas interprétés rendant difficile la lecture des informations.
Revenir dans l'interface de PhpMyAdmin , 
Dans la section Méthode d'exportation, cocher la case Personnalisée ..., 
Dans la section Sortie, choisir le jeu de caractères iso-8859-1  avec la liste déroulante, 
Il s'agit d'un système d'encodage pour les caractères latins.
Dans la colonne Colonnes séparées par  de la section Options spécifiques au format, remplacer la virgule par un point-virgule (;), 
Il s'agit en effet du séparateur de liste le plus conventionnel. C'est lui qui permet de délimiter les colonnes sans ambiguïté.
Enfin, cliquer sur le bouton Exécuter , 
Puis enregistrer le fichier d'exportation sous le même nom pour écraser le précédent, 
Remarque : Pour écraser un fichier, il faut s'assurer qu'il ne soit pas en cours d'exécution. Il est donc nécessaire de fermer 
Excel  avant toute chose.
Dans le dossier de téléchargement, double cliquer sur le fichier products.csv  pour l'ouvrir dans Excel , 
Les changements sont saisissants. Tout d'abord, grâce au séparateur de liste ajusté, les éléments apparaissent bien dans leurs colonnes respectives. De plus, si vous consultez le contenu du descriptif, vous remarquez que les 
accents  sont cette fois parfaitement gérés.
Une fois encore, les points d'interrogation subsistant étaient déjà présents dans le fichier source. Nous avons donc apporté les solutions pour gérer les 
accents à l'importation et à l'exportation .