# [Netbeans]Sale caractère[Résolu]

## Ivru

Bonjour, 

alors mon ptit problème en ce moment c'est l'encodage sous Netbeans 5.5.

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 ]
> ...

 

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)
> ...

 

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

 

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

 

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)   :Shocked: 

Bref, je sais pas ou ca merdouille : 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    :Crying or Very sad: 

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

----------

## xaviermiller

Hello,

Passe en UTF-8, c'est le seul character set actuellement supporté  :Wink: 

Sinon, ne mets pas FR_fr.ISO-8869-1 mais seuelement "iso-8859-1"

----------

## Ivru

 *XavierMiller wrote:*   

> Hello,
> 
> Passe en UTF-8, c'est le seul character set actuellement supportï¿½ 
> 
> 

 

Oui mais justement, non... Si j'ai de l'UTF-8 les echanges de fichier entre linux et windows c'est la cata.

 *XavierMiller wrote:*   

> 
> 
> Sinon, ne mets pas FR_fr.ISO-8869-1 mais seuelement "iso-8859-1"

 

EssayÃ©, et ce coup ci impossible de mettre des caractÃ¨res accentuÃ©s dans mon code ([] Ã  la place du caractÃ¨re)

----------

## xaviermiller

pourquoi ? sous Windows, il existe de nombreux éditeurs supportant UTF-8 (dont Notepad, déjà UTF-8 sous W2K)

----------

## Ivru

Bon, je viens de tout reconvertir en utf-8. Depuis gedit, j'arrive a mettre des accents et quand j'ouvre le fichier dans netbeans, il voit les accents, mais impossible d'en écrire. Quand je compile, il croit qu'il est en ascii du coup erreur pour chaque caractère accentué. Admettons, spas trop grave si je met pas d'accents dans le code. Là ou le bat blesse c'est que je dois faire un programme qui parse des pages web pour ensuite les indexer. Evidemment, lors du parsing des pages web, tous les accents sont remplacés par des "?". Et ca, ca me pose un grave problème. Je vais pas indexer des mots comme "acad?mique"...

----------

## Ivru

Bon, ca y est j'ai trouvé mon problème (même si je ne l'ai toujours pas résolu...). J'ose à peine le dire. C'est juste un inputStream de me*de qui par default est en ASCII.

Cela dit, le string récupérer par le parsing reste sans accents, mais avec des ????. C'est pas faute de définir l'encodage du stream.

----------

## geekounet

 *Ivru wrote:*   

> Bon, ca y est j'ai trouvé mon problème (même si je ne l'ai toujours pas résolu...). J'ose à peine le dire. C'est juste un inputStream de me*de qui par default est en ASCII.
> 
> Cela dit, le string récupérer par le parsing reste sans accents, mais avec des ????. C'est pas faute de définir l'encodage du stream.

 

ya une méthode readUTF() normalement non ? (je sais plus pour quel objet ça existe ça  :Confused: )

----------

## Ivru

en fait, avec le constructeur de l'InputStream on peut préciser l'encodage à utiliser. Le problème est que je n'ai pas rebooté apres avoir configuré mes locales. Je pensais qu'un simple env-update source /etc/profile suffirait mais non.

Bref, c'est résolu, je change le tag.

Merci à vous.

----------

## geekounet

 *Ivru wrote:*   

> Bref, c'est résolu, je change le tag.

 

C'est un "(résolu)", et c'est en fin de titre  :Wink: 

----------

