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 Platform Discussion :

Encodage UTF-8 Eclipse


Sujet :

Eclipse Platform

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Encodage UTF-8 Eclipse
    Bonjour,

    Je travaille sur un plugin eclipse, qui contient des éditeurs de textes basés sur la classe TextEditor d'eclipse.
    Quand je crée un fichier sous windows avec cette application, et que j'essaye de le réouvrir sous linux avec la même appli. les éditeurs n'intéreprètent plus les é, è, à ... pareil, et affichent des caractères illisibles.

    Cela est du au fait que sous windows, ils sont enregistrés sous le format ISO-8859-1, et que sous linux ils reconnaissent plutot de l'UTF-8.

    Moi je pense qu'il faut rajouter un bout de code dans les classes responsables de ces éditeurs qui va forcer l'enregistrement des fichiers en UTF-8 pour toutes les plateforms.

    Quelqu'un peut m'aider Plzzzz

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut
    je ne sais pas comment fonctionne les editeurs mais pour écrire dans un fichier en précisant l'encodage il faut faire comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStreamWriter writer = new OutputStreamWriter(monFileOutputStream,"UTF-8");
    mais je sais pas si ca s'applique au editeur...

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    je pense que c'est une histoire de getEncoding () et setEncoding . j'ai essayé d'intégrer ce bout de code mais ça me bloque tout l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class);
    String encoding = encodingSupport.getEncoding();
    je t'envoie la classe d'un de ces éditeurs (BEditor.java)

    Merci pour ta réponse,
    Fichiers attachés Fichiers attachés

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut
    C'est pas l'éditeur qui créer le fichier... hors je pense que c'est lors de la creation que l'encodage est défini ?!

    As tu essayer d'ouvrir avec ton editeur un fichier UTF8 pour savoir si le problème viens de l'editeur ?

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    j'ai essayé de convertir mes fichiers crées sous windows de l'ISO à l'utf8. je les importe dans mon appli , je les ouvre donc avec ces éditeurs et ils s'affichent bien comme il faut.

    Donc c'est l'éditeur qui interprète selon un certain encodage selon la plateforme.

    J'ai trouvé ça comme indication :

    http://help.eclipse.org/help32/index...v_encoding.htm

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut
    oui l'éditeur interprété en fonction de l'encodage du fichier... mais pas en fonction de la plateforme.

    C'est lors de la création du fichier que l'encodage par defaut de la plateforme est utilisé par defaut. C'est donc bien lors de la création de ton fichier que tu dois spécifier l'encodage et pas dans l'editor.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Ouiiiii je suis d'accord. J'ai commencé d'abord par modifier la méthode CreateFile () avant d'aller fouiller dans l'éditeur
    Mais justement, parceque je n'ai abouti à rien !!!!
    Tu forcerais comment toi, l'encodage à l'UTF8 ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 90
    Points : 88
    Points
    88
    Par défaut
    bin je ne sais pas de quoi tu dispose dans ta methode createFile, peut tu la mettre dans le forum ?

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    pas de problème ; là voilà !
    Fichiers attachés Fichiers attachés

  10. #10
    Membre confirmé

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 556
    Points
    556
    Par défaut
    Ce n'est pas de la responsabilité de l'éditeur de savoir en quel encodage il doit sauver telle ou telle ressource. C'est à toi de changer l'encodage par défaut de tout ton eclipse (Preferences > General > Workspace) ou bien d'un projet ou d'un dossier/fichier de ton projet (bouton droit sur la ressource puis "Propriétés").

    Si tu veux faire ce genre de chose programmatiquement, tu peux éventuellement faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monIProject.setDefaultCharset("UTF-8",new NullProgressMonitor());
    ou bien tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monIFile.setCharset("UTF-8",new NullProgressMonitor());
    dans ton "createFiles"

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Alors tout d'abord merci beaucoup pour Ta réponse. ça m'a donné une autre piste pour chercher.
    Quand je rajoute les lignes avec setdefaultCharset("utf-8") sous windows, je recompile.
    J'obtiens à la création d'un nouveau projet sous mon appli , un rep .settings qui contient 'org.eclipse.core.resources.prefs' et dedant il ya : encoding/<project>=UTF-8 .

    Bref je saisie dans mes deux fichiers (.mch et .dico) des caractères accentués. Je passe sous linux, je réimporte et j'ai les caractères illisibles.
    (Ex : b�r �e que � l'aube d�dier ...)

    donc the problem is still here :oS

  12. #12
    Membre confirmé

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 556
    Points
    556
    Par défaut
    Oui mais comment réouvres-tu ces fichiers ?
    En réimportant le projet ("projet" au sens Eclipse, càd en récupérant bien ton dossier .settings qui n'est pas anodin ) que tu as créé depuis windows ? Si oui, ça doit fonctionner...

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    les fichiers ne peuvent pas être ouvert avant la création d'un nouveau projet. En effet, sous linux :
    - je lance l'appli , je fais créer un nouveau projet , je lui donne un nom 'toto'
    ==> il crée donc toto.mch et toto.dico et le rep .settings et .project . Ces derniers ne sont pas totalement vides. Ils contiennent des entêtes lisibles donc en UTF-8.
    - Ensuite , je fais importer Système et je récupère les 4 fichiers "windowsiens" remplis à savoir (toto.mch, toto.dico, .project , et le .settings).
    ==> Cet import écarse les fichiers linuxiens avec les entêtes lisibles, et les remplacent par ceux de windows avec les caractères b�r �e que � l'aube d�dier ...

    Et ça ne fonctionne pas

    PS : quand je fais dans une console (les deux fichiers étant crées sous windows à la base)

    # file toto.mch
    toto.mch: ASCII text
    # file toto.dico
    toto.dico: ISO-8859 text

  14. #14
    Membre confirmé

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 556
    Points
    556
    Par défaut
    Pourquoi ne fais tu pas, sous linux : File > Import > Exisiting Projects into workspace ?
    Car je ne suis pas sûr qu'en remplacant le .settings "à chaud" Eclipse retrouve tous ses petits ...!!! A la rigueur en fermant et rouvrant le projet la manip telle que tu la décris fonctionne peut-être ... ?

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Alors File > Import > Exisiting Projects into workspace ne marche pas ! enfin affiche toujours mal les fichiers importés.
    Close puis Open Project, ne mène à rien non plus !
    Je t'avoue que là , je commence un peu à désespérer

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Dans le menu Preferences ...
    Dans General/Content Types/Java Properties File sont tous en ISO-8859-1 sous windows, comme sous linux.
    y'a pas un moyen de les forcer en UTF-8 dans les sources d'eclipse? parce que manuellement ça ne change rien au problème

  17. #17
    Membre confirmé

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par Sarita04 Voir le message
    Dans le menu Preferences ...
    Dans General/Content Types/Java Properties File sont tous en ISO-8859-1 sous windows, comme sous linux.
    y'a pas un moyen de les forcer en UTF-8 dans les sources d'eclipse? parce que manuellement ça ne change rien au problème
    C'est plutôt dans "preferences>General>Workspace" puisque je crois pas que ce soit des fichiers Java que tu manipules

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Mais juste une question, par rapport à la classe CreateFile.
    monIFile est censé contenir koi exactement ?

    Je beug un peu sur comment le défnir avant de lui appliquer le setCharset, il doit être en rapport avec mon IProject c bien ça . paske je crois que j'ai fait une boulette

  19. #19
    Membre confirmé

    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2004
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Juin 2004
    Messages : 332
    Points : 556
    Points
    556
    Par défaut
    mmmh en fait je pense que tu devrais changer un peu ton ajouterfichier


    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
    public static void AjouteFichier (IProject project, String Nom, String Contenu)
            {
                IFile Fichier = project.getFile(Nom) ;
    
                /* la méthode Convert2InputStream retourne : 
                return new ByteArrayInputStream(sb.toString().getBytes()) ;*/
    
     // *** fais plutot un sb.toString().getBytes("UTF-8"); histoire d'être sûr ... ***
     
                InputStream ContenuStream = Convert2InputStream(Contenu) ;
                
                try {
                    if (Fichier.exists())
                    {
                         Fichier.setCharset("UTF-8", new NullProgressMonitor()) ;
                        Fichier.setContents(ContenuStream,true, false, null) ;
                    }
                    else{
                        java.io.File systemFile = Fichier.getLocation().toFile() ;
                        
                        if (systemFile.exists()){}
                        else
                        {
                            Fichier.create(ContenuStream, false, null);
                        }
                    }
                } catch (CoreException ce) {}
                return ;
            }

  20. #20
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Alors la blague du jour :
    je crée un projet sous win, je tape des é éé èèè ààà dedant. je teste (import) sous linux .
    Niquel ça marche bien Enfinnnnnnnnn !!!!

    Je prends un vrai grand projet, je l'importe sous windows (attention, dans mon nouveau projet et Pafff !! il reconnait plus les carctères . c'est comme si on forçait deux fois.
    il est djà en UTF-8 et on le remets en UTF_8.

    PS : meme comportement sous Linux !

    Kèce t'en penses , pas mal ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/06/2012, 10h44
  2. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 14h55
  3. [C# 2.0] Comment réaliser un encodage UTF-8 ?
    Par StormimOn dans le forum C#
    Réponses: 2
    Dernier message: 18/10/2006, 10h35
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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