[Netbeans][Gentoo]Sale caractère

Bonjour,
alors mon ptit problème en ce moment c’est l’encodage sous Netbeans.
Explications : Je tourne sur une Gentoo avec comme locales :

[quote]IPCGentoo ~ # locale-gen

  • Generating 2 locales (this might take a while) with 1 jobs
  • (1/2) Generating fr_FR.ISO-8859-1 … [ ok ]
  • (2/2) Generating fr_FR.ISO-8859-15@euro … [ ok ]
  • Generation complete[/quote]

Oui, parce que je bosse en binôme avec des gens utilisant windows. Bref, passons. Jusqu’a présent j’était en UTF-8. Pour un projet je dois parser des page web depuis un programme java. Dans mon code sous netbeans, j’ai pris l’habitude de ne plus écrire les accents vu que netbeans ne le comprenait pas. Sauf que du coup quand je parse une page web, tous les accent passent à la trappe et je me retrouve donc avec des ? un peu partout. Et ca… Ben ca me broutte. En fait, c’est pas que ca me broutte, c’est juste que c’est inutilisable.
Je cherche donc un moyen de faire comprendre les accents à netbeans. Je vais donc dans Tools -> Options -> Advanced Options -> Java sources et je définit le Default Encoding à fr_FR.ISO-8859-1.
Magie j’arrive à foutre des caractères accentués dans mon code, mais le problème et que netbeans “plante” (évidemment, impossible d’enregistrer le fichier) avec un magnifique message d’erreur :

[quote]A java.nio.charset.UnsupportedCharsetException exception has occurred.

java.nio.charset.UnsupportedCharsetException: fr_FR.ISO-8859-1
at java.nio.charset.Charset.forName(Charset.java:500)
at org.netbeans.modules.java.JavaEditor.checkCharsetConversion(JavaEditor.java:560)

at org.netbeans.modules.java.JavaEditor.saveDocument(JavaEditor.java:547)
at org.netbeans.modules.java.JavaEditor.saveDocument(JavaEditor.java:533)
at org.netbeans.modules.java.JavaEditor$Save.save(JavaEditor.java:245)
at org.netbeans.core.NbTopManager.saveAll(NbTopManager.java:267)
at org.netbeans.core.NbTopManager.access$300(NbTopManager.java:69)
at org.netbeans.core.NbTopManager$NbLifecycleManager.saveAll(NbTopManager.java:427)
at org.openide.actions.SaveAllAction.performAction(SaveAllAction.java:84)
at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:100)
at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.actionPerformed(ActionsBridge.java:87)
at org.netbeans.core.ModuleActions.invokeAction(ModuleActions.java:80)
at org.netbeans.modules.openide.actions.ActionsBridgeImpl.invokeAction(ActionsBridg

eImpl.java:30)
at org.netbeans.modules.openide.util.ActionsBridge$ActionRunnable.doRun(ActionsBridge.java:78)
at org.netbeans.modules.openide.util.ActionsBridge$1.run(ActionsBridge.java:47)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:499)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:932)[/quote]

J’adore…

J’ai essayé de regarder au niveau de l’encodage de mes fichiers puisqu’a la base j’étais en UTF-8 :

[quote]ivru@IPCGentoo ~ $ file -i Cours/rim/laboRIM/src/laboRIM/Document.java
Cours/rim/laboRIM/src/laboRIM/Document.java: text/x-c; charset=us-ascii[/quote]

pour ensuite les convertir en ISO et là… c’est le drame :

[quote]ivru@IPCGentoo ~/Cours/rim/laboRIM/src/laboRIM $ iconv -f utf-8 -t iso-8859-1 <Document.java >Document.java
ivru@IPCGentoo ~/Cours/rim/laboRIM/src/laboRIM $ file -i Document.java
Document.java: application/x-empty[/quote]
Apparemment l’encodage de mon fichier n’existe plus (avec la commande iconv -f ascii -t iso-8859-1 j’ai exactement la même chose) B)

Bref, je sais pas ou ca merde : mes fichiers sont mal encoder à la base ? Faut il TOUS les convertir avant de les utiliser sous netbeans? bref : Faut faire quoi pour que netbeans accepte mes accents ?

Help B)

Pour la peine ils devraient inventer une nouvelle norme pour rendre les choses encore plus clair et simplifier le problème…

Perso, j’aurai vu le problème dans l’autre sens, resté en UTF8 et convertir tout ce qui est en ISO8859-15 en UTF8, ça évite pleins de problème, en plus, même si ton binome est sous windows, tous les IDE, éditeurs d’aujourd’hui propose la gestion de l’UTF8 et des retours chariot Unix (\n).

Soit, je viens de tout reconvertir en utf-8, et je peux ajouter des accents à mes documents, mais seulement depuis gedit. netbeans ne les accepte toujours pas (une box à la place).

En plus, pour mon projet, je dois parser des pages web pour les indexer. Les pages web sont en FR, donc avec caractères accentués. Evidemment, tout ce qu’il lit, il vire les accent. Alors je me vois mal indexer des mots comme “acad?mique”… Des idées?

Déjà ta manip est mauvaise là. Passe par un fichier temporaire. C’est pour ça que tu as un type « empty » avec file.

Ouais, effectivement, je me suis fait script pour automatiser tout ca, je passe par un fichier tmp maintenant, mais le problème perdure. Enfin, c’est space… Je m’explique : une fois la conversion faite, je dois ouvrir le fichier avec gedit, ajouter des éàààé dedans, le sauvegarder, pour l’ouvrir sous netbeans où les éààé apparaissent avec des sigles, mais j’arrive à inserer des caractères accentués dedans. Le problème qui me chiffone c’est au moment de l’execution du programme : l’affichage ne prend pas en charge les accents. Ca vient de netbeans, de mes locales, ou de java ?

EDIT :
Bon, mon problème en fait viens de l’InputStream qui sert a parser la page web. Par default, l’encodage est en ASCII. En précisant au constructeur l’encodage à utiliser, j’arrive a le changer et le passer en iso (ou utf8). Seulement voila… Le problème est toujours présent. Petit exemple illustratif du string récupérer par le parsing de la page www.google.ch (je sais que certains modo ont la gachette facile, mais c’est pas de la pub pour google promis!) :

EDIT bis :
C’est bon, quand on change ses locale un simple env-update source /etc/profile ne suffit pas, faut aussi rebooter.