mysql, fichier csv et accents

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

chocho
Nouveau WRInaute
 
Messages: 41
Inscription: Mar Mai 10, 2005 14:39

mysql, fichier csv et accents

Message le Mer Sep 20, 2006 17:11

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


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Mer Sep 20, 2006 18:23

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: Mar Mai 10, 2005 14:39

Message le Mer Sep 20, 2006 23:14

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! :wink:

cordialement


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

lol

Message le Jeu Sep 21, 2006 6:48

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


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Sep 21, 2006 9:47

Autrement, si tu as acces a SSH, la fonction cat fichier.sql | mysqld login pass est bien utile aussi. faut chercher sur le net la synthaxe exacte


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Jeu Sep 21, 2006 9:47

euh quoi que avec easyphp tu dois etre sous windows non ?

chocho
Nouveau WRInaute
 
Messages: 41
Inscription: Mar Mai 10, 2005 14:39

Message le Jeu Sep 21, 2006 9:51

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

chocho
Nouveau WRInaute
 
Messages: 41
Inscription: Mar Mai 10, 2005 14:39

Message le Jeu Sep 21, 2006 9:54

et bien sûr merci à kaliii dont je découvre à l'instant les derniers posts :wink:


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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités