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
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:
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 : Sélectionner tout - Visualiser dans une fenêtre à part BufferedReader inFile = Files.newBufferedReader(Paths.get(path), StandardCharsets.UTF_8);;
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part 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
Ca peut-être que le mot lu du clavier est mal traité ?
J'ai ajouté "UTF-8" mais rien n'est changé
D'accord j'essaye de résoudre le problème du temps d'exéusion aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 static String lireChaine() { return System.console().readLine(); }
Bonsoir,
Merci , mais une erreur
Exception in thread "main" java.lang.NullPointerException
J'ai mis ça :
Au niveau main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part String Input = lireChaine();
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 static String lireChaine() { return System.console().readLine(); }
Comment je pourrai savoir si ma "console" de netbeans soit vraiment une console" ?
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?
PXL le retro-gaming facile: Essayez-le
Yildiz-Engine an open-source modular game engine: Website
Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page
System.console() m'a renvoyé null
Lancement de la console depuis OS
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager