IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Problème d'encodage de fichier (.csv-->.sql, .sql-->.csv)


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Problème d'encodage de fichier (.csv-->.sql, .sql-->.csv)
    Bonjour,

    Je développe actuellement un logiciel permettant de charger les données contenues dans un fichier CSV dans une base de données MySQL (sur Internet et non en local). Pour cela, je vais lire dans le fichier CSV source de cette manière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    lecteurAvecBuffer = new BufferedReader(new InputStreamReader(new FileInputStream(file_path),"ISO-8859-1"));
     
    //Gestion de la première ligne
    while((ligne = lecteurAvecBuffer.readLine()) != null)
    {
    etc...
    Je crée ensuite un fichier SQL en vue de l'uploader sur le serveur mais j'ai alors perdu tous les accents des textes contenus dans le CSV. Ceux-ci s'affichent de la manière suivante :
    Référence de l'ambiance sonore de l'écran

    Je voulais savoir si vous aviez des pistes et/ou solutions.
    P.S. :
    1. Le fichier CSV source est indiqué comme encodé en ANSI par notepad++.
    2. Je travaille sous netbeans.

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 571
    Points : 15 538
    Points
    15 538
    Par défaut
    Tu spécifies correctement l'encodage "ISO-8859-1" a la lecture du fichier. Il faut que tu face de même lors de l'écriture.

    Si tu veux une aide plus précise, il faudrait que tu postes le code qui écris ce fichier SQL.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Voici mon code, mais j'ai lu quelque part que l'encodage par défaut lors d'une écriture était justement l'ISO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    f_out = new File("init.sql");
    f_out.delete();
    f_out.createNewFile();
    String path_file = System.getProperty("user.dir") + "\\init.sql";
    FileWriter fw = new FileWriter(path_file, true);
    fw.flush();
    output = new BufferedWriter(fw);
    Et ensuite j'écris comme cela dans le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    output.write("\n"+requete);
    output.flush();
    Merci.

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 571
    Points : 15 538
    Points
    15 538
    Par défaut
    Alors remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileWriter fw = new FileWriter(path_file, true);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileOutputStream fos = new FileOutputStream(path_file, true)
    Writer fw = new OutputStreamWriter(fos,"ISO-8859-1");
    enfin quand tu postes du code sur le forum, place le entre les balise [code ] et [/code ] (bouton #)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Pardon pour l'apparence du code.

    J'ai fais ce que tu m'as dis, mais j'ai maintenant un fichier .sql avec des données dont les accents sont remplacés par des rectangles.

    As-tu une idée?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Bon ben je viens de "trouver" la solution. En fait ce que je faisais était correct. Le seul problème c'est que lors de mes tests j'ai du modifier le fichier source avec un programme tiers (notepad++) ce qui m'a fait perdre la cohérence de mon encodage.

    Encore merci.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2014, 17h00
  2. [CSV] Problème d'encodage
    Par simoryl dans le forum Langage
    Réponses: 13
    Dernier message: 18/04/2012, 15h20
  3. Problème d'encodage des fichiers xml dans SAX
    Par jad_jad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 26/05/2008, 19h51
  4. Problème d'encodage de fichier
    Par djanggawul dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/01/2007, 20h26
  5. Réponses: 5
    Dernier message: 17/10/2006, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo