Non , aucun caractère accentué n'est afiiché correctement !
Ce que je viens de dire, c'est qu'au niveau du fichier ils sont correctes
Mais après le traitement efféctué et au niveau de l'affichage tous sont remplcé par un petit carreau
Version imprimable
Non , aucun caractère accentué n'est afiiché correctement !
Ce que je viens de dire, c'est qu'au niveau du fichier ils sont correctes
Mais après le traitement efféctué et au niveau de l'affichage tous sont remplcé par un petit carreau
Donc ils sont incorrects aussi au niveau de tes fichiers de sortie? Je relis tes posts et je ne suis pas sur que tu aie pris en compte les remarques faites. Vu que tu écris et lit plusieurs fois tes fichiers ils me semble, à chaque fois tu dois systématiquement utiliser UTF-8 dans tes reader / writer à l'ouverture.
Autre remarque qui pourrait poser problème, il y a toujours 2 manières de représenter les accents en unicode. Avec un caractère combiné (00e9 pour le é) ou avec des caractères combinatoire. ( 0065 0303 pour e comibiné à ' qui deviens é). Vu que tu manipule des char directement, vérifie que tu n'es pas dans ce cas. Un moyen simple est de normalizer ta chaine pour t'assurer que tout les caractères décomposé redeviennent composés
https://docs.oracle.com/javase/tutor...alizerapi.html
Bonsoir ,
Pour bien comprendre mon problème , voila le resultat obtenu, extrait de la console de mon projet:
Pièce jointe 217544
Pièce jointe 217545
Oui, j'ai vérifié, et j'ai ajouté cette ligne au niveau de la lecture de mon fichier :et ça au niveau scanner Scanner :Code:BufferedReader inFile = Files.newBufferedReader(Paths.get(path), StandardCharsets.UTF_8);
;Code:sc = new Scanner(new File(fichier),"utf8")
De même, je pose la question , comment je peux forcer l'encodage UTF-8 au niveau PrintWriter ?
merci pour votre patience et votre compréhension :)Code:PrintWriter fichNDT = new PrintWriter(new FileWriter("monChemin/NDT.txt"));
T'as mis 6mins 40 pour faire ça O_o ??
Ya que moi que ça choque ????
Mes fichiers sont volumineux.
Ce n'est pas ça mon problème :)
Donc ce sont les caractères que tu lis depuis le clavier qui sont mauvais depuis le début, rien à voir avec tes fichiers :weird:
Ca peut-être que le mot lu du clavier est mal traité ?
J'ai ajouté "UTF-8" mais rien n'est changé :no:
D'accord j'essaye de résoudre le problème du temps d'exéusion aussi :ccool:Code:
1
2
3
4
5
6
7
8 static String lireChaine() { Scanner sc = new Scanner(System.in,"UTF-8"); System.out.println("Saisissez votre mot: "); String mot = sc.nextLine(); System.out.println("Le mot à identifier sera limité par deux espaces: " + "_" + mot + "_"); return "_" + mot + "_"; }
essaie ça, l'encodage devrait etre ok entre java et netbeans sur la lecture clavier:
Code:
1
2
3
4 static String lireChaine() { return System.console().readLine(); }
Bonsoir,
Merci , mais une erreur :roll: 8-)
Exception in thread "main" java.lang.NullPointerException
c'est vague :D
J'ai mis ça :
Au niveau main :Code:
1
2
3
4
5
6
7
8 static String lireChaine() { Scanner sc = new Scanner(System.console().readLine()); System.out.println("Saisissez votre mot: "); String mot = sc.nextLine(); System.out.println("Le mot à identifier sera limité par deux espaces: " + "_" + mot + "_"); return "_" + mot + "_"; }
Erreur :Code:String Input = lireChaine();
Pièce jointe 217723
Pourquoi tu construit un scanner à partire de Console.readLine()? Ca te retourne déjà une ligne. Est-ce que System.console() te retrourne null? Ce serait balot, c'est le seule moyen de lire la console dans l'encodage correct :(
Pour faire les chose simplement:
netbean que je sache ne permet pas de choisir l'encodage de System.in dans sa console
java ne permet pas de connaitre l'encodage de la console
System.in a besoin d'un encodage pour devenir du texte
Java n'a adressé ce problème qu'à partir de java 6 avec System.console qui fournis un Reader, un Writer et des possiblité de faire de l'input password (caché)
Pour que console marche, il faut que la "console" de netbeans soit vraiment une console, je ne sais pas si c'est le cas.
Bonjour,
J'ai rencontré le même problème quand , j'ai mis ça tout court:
:(Code:
1
2
3
4 static String lireChaine() { return System.console().readLine(); }
Comment je pourrai savoir si ma "console" de netbeans soit vraiment une console" ? :koi:
Tu teste si System.console() renvoie autre chose que null.
Si ça renvoie null, tu peux oublier le lancement depuis netbeans et lancer ça dans une console de ton OS
Le fichier est bien encodé en UTF-8?
System.console() m'a renvoyé null :arf:
Lancement de la console depuis OS :koi::koi::koi:
ben oui, lancer depuis bash ou cmd.exe. De toutes façons c'est comme ça que ton utilisateur final lancera ton programme, il n'utilisera pas netbeans donc ça sert à rien de se tirer la nouille sur un problème qui n'en est pas un.
Bon , aussi avec Netbeans, je developpe le même programme sous forme d'une application web (JSF) avec les mêmes fonctionnamités .. et ça m'a donné le même resultat ... problème au niveau les caractère accentués !!
:(
Je sais pas quoi faire exactement :roll:
Coté jsf, la résolution est sur le même principe, s'assurer que l'encodage du formulaire est correcte, que le décodage par le serveur correspond, etc.
Mais vu que les procédures sont totalement différentes, il faut reprendre à 0 le problème pour le résoudre :)