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

Eclipse Java Discussion :

Passage du code ISO-8859-1 en UTF-8 sous Eclipse


Sujet :

Eclipse Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Passage du code ISO-8859-1 en UTF-8 sous Eclipse
    Bonjour,

    Je souhaite passer mon code java dans eclipse de ISO-8859-1 en UTF-8. Mais quand je procède au changement (dans préférences-Informations générales-Editeurs), je me retrouve avec des caractères illisibles à la place des caractères accentués (des carrés blancs, des losanges noirs avec des points d'interrogation,...).

    Est-ce qu'il y a un moyen de faire ça proprement ?

    merci pour vos réponses.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Changer le file encoding dans les properties d'eclipse va uniquement changer la manière dont eclipse interprète les bytes du fichier (c'est pour cela que les caractères ne s'affichent plus comme il faut).

    Désolé, perso je ne connais rien dans eclipse qui permette de le faire. Moi quand je constate que je n'ai pas sélectionné le bon encodage d'un fichier, je me tappe toutes les modifs à la main
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Dans eclipse je ne connais rien non plus, par contre c'est possible avec Notepad2 et Notepad++.

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Un petit programme de conversion doit pouvoir être réalisé en moins d'une heure.

    J'ai fait ça une fois pour convertir l'encoding d'un fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
     
    /**
     * JConv to convert a file to another encoding.
     * 
     * @author Natha
     */
    public class JConv {
     
    	/** HELP_USE */
    	private static String HELP_USE = "jconv.jar [-h] [-f encoding] [-t encoding] [inputfile]";
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		if (args.length == 0) {
    			System.out.println(HELP_USE);
    			System.exit(0);
    		}
    		boolean error = false;
    		String encodf = null;
    		String encodt = null;
    		File input = null;
    		for (int i = 0; i < args.length; i++) {
    			try {
    				if (args[i].trim().equals("-h")) {
    					System.out.println(HELP_USE);
    					System.exit(0);
    				} else if (args[i].trim().equals("-f")) {
    					i++;
    					encodf = args[i];
    				} else if (args[i].trim().equals("-t")) {
    					i++;
    					encodt = args[i];
    				} else if (args[i].trim().startsWith("-")) {
    					error = true;
    				} else {
    					input = new File(args[i]);
    					if (!input.exists() || !input.isFile()) {
    						error = true;
    					}
    				}
    			} catch (Throwable t) {
    				error = true;
    			}
    		}
    		if (error || encodf == null || encodt == null || input == null) {
    			System.out.println(HELP_USE);
    			System.exit(0);
    		} else {
    			System.out.println("Input  file: " + input.getAbsolutePath());
    			System.out.println("Encode from: " + encodf);
    			System.out.println("Encode   to: " + encodt);
    		}
     
    		// controls
    		if (!input.canRead() && !input.canWrite()) {
    			System.out.println("Rights error: The file cannot be readed or riten.");
    			System.exit(0);
    		}
     
    		// -- change encoding
    		InputStreamReader isr = null;
    		OutputStreamWriter osw = null;
    		try {
    			File tmpFile = File.createTempFile("jconv", "tmp", new File(System.getProperty("java.io.tmpdir")));
    			isr = new InputStreamReader(new FileInputStream(input), encodf);
    			osw = new OutputStreamWriter(new FileOutputStream(tmpFile), encodt);
     
    			int n = 0;
    			char[] cbuf = new char[1024];
    			while ((n = isr.read(cbuf)) != -1) {
    				System.out.print(".");
    				osw.write(cbuf, 0, n);
    			}
     
    			isr.close();
    			osw.close();
    			System.out.println("end");
     
    			if (input.delete()) {
    				tmpFile.renameTo(input);
    				System.out.println("Change encoding OK");
    			} else {
    				System.out.println("Cannot delete original file.");
    			}
     
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (UnsupportedEncodingException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				isr.close();
    			} catch (IOException e) {}
    			try {
    				osw.close();
    			} catch (IOException e) {}
    		}
    	}
     
    }
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Et pour en faire un plugin Eclipse ?

    Parce que bon, le but de la manoeuvre pour Jerhom c'est, à mon avis, d'avoir un moyen rapide de changer l'encodage d'un fichier sous eclipse (pas de lancer un programme Java en ligne de commande pour faire la transformation ^^).

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Parce que bon, le but de la manoeuvre pour Jerhom c'est, à mon avis, d'avoir un moyen rapide de changer l'encodage d'un fichier sous eclipse (pas de lancer un programme Java en ligne de commande pour faire la transformation ^^).
    Mouais, en même temps un changement d'encoding, tu le fais pas tous les 2 jours mais une fois pour toute.
    Il faut juste adapter mon code pour prendre plusieurs fichiers en entrée (en prenant que les .java par exemple) et non 1 seul.

    Il n'y a pas vraiment d'intérêt à surcharger Eclipse d'un plugin pour une opération qui ne sera faite qu'une fois.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

Discussions similaires

  1. Conversion ISO-8859-1 vers UTF-8 dans Eclipse
    Par Jerhom dans le forum Eclipse
    Réponses: 2
    Dernier message: 03/06/2008, 17h35
  2. [XML] de ISO-8859-1 à UTF-8
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 11h32
  3. ISO-8859-1 et UTF-8
    Par NizarK dans le forum Documents
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  4. Réponses: 1
    Dernier message: 05/12/2006, 16h54
  5. conversion iso-8859-1 vers utf-8
    Par gorgonite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 12h49

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