mysql, fichier csv et accents
8 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
mysql, fichier csv et accents
Bonjour,
Petit problème sur lequel je sèche après l'avoir trituré dans tous les sens, à propos de la conservation des caractères accentués lors de l'enregistrement d'un fichier csv en vue de son exportation dans mysql.
Le problème:
- j'utilise phpmyadmin (2.6.1) en local pour tests avant upload sur mon serveur
- mes données sont dans des bases excel (.xls)
- je convertis les fichiers .xls en fichiers .csv, au moyen de la commande de excel "enregistrer sous... csv)
- puis j'importe à partir de l'interface phpmyadmin (importer à partir d'un fichier texte)
- aucun problème pour l'import (sauf des lignes vides que je dois supprimer manuellement une fois la table de mysql mise à jour)
- seulement voilà, lors de la conversion xls => csv, tous les caractères accentués sont supprimés (é, è, à, ö, etc...) et les mots qui comprennent ces caractères sont coupés nets lors de la conversion
Quelqu'un aurait-il une astuce pour permettre une conversion intégrale de .xls vers .csv qui respecte les caractères accentués?
Merci à vous,
cordialement
Petit problème sur lequel je sèche après l'avoir trituré dans tous les sens, à propos de la conservation des caractères accentués lors de l'enregistrement d'un fichier csv en vue de son exportation dans mysql.
Le problème:
- j'utilise phpmyadmin (2.6.1) en local pour tests avant upload sur mon serveur
- mes données sont dans des bases excel (.xls)
- je convertis les fichiers .xls en fichiers .csv, au moyen de la commande de excel "enregistrer sous... csv)
- puis j'importe à partir de l'interface phpmyadmin (importer à partir d'un fichier texte)
- aucun problème pour l'import (sauf des lignes vides que je dois supprimer manuellement une fois la table de mysql mise à jour)
- seulement voilà, lors de la conversion xls => csv, tous les caractères accentués sont supprimés (é, è, à, ö, etc...) et les mots qui comprennent ces caractères sont coupés nets lors de la conversion
Quelqu'un aurait-il une astuce pour permettre une conversion intégrale de .xls vers .csv qui respecte les caractères accentués?
Merci à vous,
cordialement
Bonjour, pour traiter des fichiers autres que Mysql il faut utiliser un script php qui fasse une boucle sur les enregistrements. Généralement, un simple stripslashes suffit a regler le probleme. voir le manuel php pour le traitement des textes en html.
merci kaliii,
mais je trouvais bien simple la fonction d'importation et d'exportation de phpmyadmin, tant pour les tables .sql que pour les fichiers .csv.
En fait j'ai résolu le problème (en local du moins), en configurant l'encodage à latin1_general_ci et en faisant très attention lors de la conversion faite par excel du fichier .xls au fichier .csv.
Et ça fonctionne correctement.
maintenant, j'ai un nouveau problème, toujours d'importation, mais cette fois-ci lorsque je veux importer une table .sql ou un fichier .csv à partir du phpmyadmin du serveur distant.
En local, je travaille avec easyphp 1.8 (phpmyadmin 2.6.1 et mysql 4.1.9). Sur le serveur distant de mon site, il y a : phpmyadmin 2.7.0-pl2 et mysql 4.1.20.
En local donc, plus aucun problème pour importer une base sql ou un fichier csv.
Mais si je tente d'importer la même base avec le phpmyadmin du serveur, le message d'erreur "impossible de lire le fichier" m'est renvoyé. Idem pour un fichier csv.
sur le serveur distant, l'encodage de mysql est utf-8. j'ai bien essayé d'aligner l'encodage avec mon mysql local, mais rien n'y fait. Refus d'importation.
Merci de m'apporter vos lumières de pratiquants avertis des SGDB, pour réussir cette satanée importation!
cordialement
mais je trouvais bien simple la fonction d'importation et d'exportation de phpmyadmin, tant pour les tables .sql que pour les fichiers .csv.
En fait j'ai résolu le problème (en local du moins), en configurant l'encodage à latin1_general_ci et en faisant très attention lors de la conversion faite par excel du fichier .xls au fichier .csv.
Et ça fonctionne correctement.
maintenant, j'ai un nouveau problème, toujours d'importation, mais cette fois-ci lorsque je veux importer une table .sql ou un fichier .csv à partir du phpmyadmin du serveur distant.
En local, je travaille avec easyphp 1.8 (phpmyadmin 2.6.1 et mysql 4.1.9). Sur le serveur distant de mon site, il y a : phpmyadmin 2.7.0-pl2 et mysql 4.1.20.
En local donc, plus aucun problème pour importer une base sql ou un fichier csv.
Mais si je tente d'importer la même base avec le phpmyadmin du serveur, le message d'erreur "impossible de lire le fichier" m'est renvoyé. Idem pour un fichier csv.
sur le serveur distant, l'encodage de mysql est utf-8. j'ai bien essayé d'aligner l'encodage avec mon mysql local, mais rien n'y fait. Refus d'importation.
Merci de m'apporter vos lumières de pratiquants avertis des SGDB, pour réussir cette satanée importation!
cordialement
lol
bah déjà faudrait utiliser le même encodage sur les serveurs mysql
ensuite tu peux aller le client mysql chez mysql.com
si tu as un acces ssh sur le server distant tu peux aussi copier la base dans /var/lib/mysql
mais pour moi la solution la plus robuste c'est de passer en local par acces et injecter tes tables par liaison odbc
rog
ensuite tu peux aller le client mysql chez mysql.com
si tu as un acces ssh sur le server distant tu peux aussi copier la base dans /var/lib/mysql
mais pour moi la solution la plus robuste c'est de passer en local par acces et injecter tes tables par liaison odbc
rog
bonjour,
merci rog
- j'avais utilisé le même encodage, mais sans résultats
- la liaison odbc est séduisante, mais j'ai déjà passé 2 jours sur ce satané problème, or cette liaison me paraît assez sophistiquée à établir, et tant qu'on configure... on ne produit rien!
- finalement,
=> je prends mes précautions lors de la conversion .xls ==>.csv,
=> j'aligne l'encodage en utf8_general_ci en local et sur le serveur distant
=> je contourne le module d'importation sql en saisissant (copiant/collant) la requête directement dans mysql sur le serveur distant
... et ça marche
Et pour les gros fichiers, le plus simple est d'utiliser la commande LOAD DATA INFILE de mysql
Simple, mais une fois qu'on sait le faire
merci à vous
merci rog
- j'avais utilisé le même encodage, mais sans résultats
- la liaison odbc est séduisante, mais j'ai déjà passé 2 jours sur ce satané problème, or cette liaison me paraît assez sophistiquée à établir, et tant qu'on configure... on ne produit rien!
- finalement,
=> je prends mes précautions lors de la conversion .xls ==>.csv,
=> j'aligne l'encodage en utf8_general_ci en local et sur le serveur distant
=> je contourne le module d'importation sql en saisissant (copiant/collant) la requête directement dans mysql sur le serveur distant
... et ça marche
Et pour les gros fichiers, le plus simple est d'utiliser la commande LOAD DATA INFILE de mysql
Simple, mais une fois qu'on sait le faire
merci à vous
8 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- CSV AdStats v4 : le logiciel pour analyser ses statistiques AdSense
- Du nouveau dans le Centre pour Webmasters de Live Search
- Gestion des langues et des sessions en PHP / MySQL
- Article sur le fichier .htaccess
- Déclarer son fichier sitemap dans le fichier robots.txt
- Sortie de GoogleStats v2.01
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Passage à l'heure d'été/hiver sur un forum phpBB
- Mise à jour du générateur de mots clés dans AdWords
- Google Analytics sur un téléphone Androïd
Consultez la description détaillée des produits ou services de Google suivants : Google Docs
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum