mysql, fichier csv et accents
8 messages
• Page 1 sur 1
- chocho
- Nouveau WRInaute

- Messages: 41
- Inscription: 10 Mai 2005
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
-

Kaliiii - WRInaute impliqué

- Messages: 602
- Inscription: 2 Mar 2005
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.
- chocho
- Nouveau WRInaute

- Messages: 41
- Inscription: 10 Mai 2005
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
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
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
- chocho
- Nouveau WRInaute

- Messages: 41
- Inscription: 10 Mai 2005
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
Lectures recommandées sur ce thème :
- besoin d'un fichier csv
- Import csv vers Mysql
- Ecrire un fichier CSV en php
- Importation rapide de CSV dans MYSQL
- enregistrement de formulaire dans fichier csv
- Exploitation un fichier CSV sous excel
- nom de colonne pour fichier csv en php
- transfert fichier csv vers base de donnée.
- Importer un fichier csv dans une bdd
- Existe-t-il un fichier CSV ou XML disponible de amazon?
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
