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

Java Discussion :

Gros problème correction des accents et UTF-8


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Gros problème correction des accents et UTF-8
    Bonjour à tous! J'ai actuellement deux gros problèmes sur mon programme java (sorte de petit assistant personnel). Le premier est que malgré toutes mes tentatives, je ne peux pas corriger les accents. Le Normalizer supprime tout bonnement les lettres ayant des caractères spéciaux, et toutes les autres classes et librairies ne marchent que si la variable string est déclarée avec son contenu avant. En revanche ils ne voudront pas modifier les caractères et les laisseront tel quel si la variable provient de l'entrée d'un utilisateur. Mon deuxième problème, (je pense d'ailleur qu'ils sont liés) est que je n'arrive pas à instaurer l'utf-8 dans éclipse (la aussi j'ai tout essayé) mais éclipse refusé de me mettre en UTF-8 (même si selon lui je suis en UTF-8)

    Pourriez-vous m'aider? Il est une heure du matin et je peux vous dire que j'ai envie de péter un câble à cause de ces deux bugs pourris XD

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Où s'effectue la saisie ? En console, dans un formulaire Swing (ou JavaFx), dans un formulaire HTML (application web) ?

    De toute manière, ce n'est pas en modifiant le paramétrage d'Eclipse que tu résoudras le problème, mais dans le traitement des chaînes et dans le paramétrage de ton environnement de saisie, selon ce que c'est.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    les entrées ce font en console

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Utile System.console() pour faire la saisie. Pour la transformation en UTF-8, tu n'as aucune manipulation à faire sur les String (c'est le système final qui s'en charge. J'ai d'ailleurs oublié de te demander ce que c'était).
    Comme il n'y a pas de console sous Eclipse (il y a une console Eclipse, mais pas système par défaut), on peut faire comme ça, pour que le programme fonctionne à la fois sous Eclipse et sous cmd.exe (ici je fais la sérialisation en xml/utf-8) (on voit d'ailleurs qu'il n'y a aucune manipulation particulière sur les String) :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    public class ConsoleInputDemo {
     
    	private static final Scanner console = createScanner();
     
    	public static void main(String[] args) {
     
    		String outputName;
    		if(  args.length>0 ) {
    			outputName = args[0];
    		}
    		else {
    			outputName = "output.xml";
    		}
     
    		System.out.println("Default charset: " + Charset.defaultCharset());
    		Path path = Paths.get(outputName);
    		System.out.println("Ouput: "+path.toAbsolutePath());
     
     
    		try(Writer fileWriter = Files.newBufferedWriter(path,StandardCharsets.UTF_8)) { // je veux sérialiser en UTF-8
    		XMLOutputFactory output = XMLOutputFactory.newInstance();
    		XMLStreamWriter writer = output.createXMLStreamWriter(fileWriter);
     
    		writer.writeStartDocument(StandardCharsets.UTF_8.name(),"1.0");
     
    		String input;
    		do {
    			System.out.println("Saisir une chaîne (ou vide pour terminer) : ");
    			input = console.nextLine(); // je lis une chaîne
    			if ( input.isEmpty() ) {
    				break;
    			}
    			println("Vous avez saisi : " + input); // j'écris une chaîne
    			writer.writeStartElement("input"); // j'écris une chaîne
    			writer.writeCharacters(input);
    			writer.writeEndElement();
     
    		} while ( !input.isEmpty()  );
     
    		writer.flush();
     
    		}catch (IOException | XMLStreamException e) {
    			e.printStackTrace();
    		}
     
    	}
     
    	private static void println(String string) {
    		if ( System.console()!=null ) {
    			System.console().writer().println(string);
    		}
    		else {
    			System.out.println(string);
    		}
    	}
     
    	private static Scanner createScanner() {
    		if ( System.console()!=null ) {
    			return new Scanner(System.console().reader());
    		}
    		else {
    			return new Scanner(System.in);
    		}
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci Joël, mais mon problème est plus complexe. En fait, mon programme à besoin de fichiers texte pour fonctionner donc je l'exporte à chaque fois pour le tester dans un fichier .jar que je lance avec java -jar nomdemonfichier.jar Je suis obligé d'ouvrir mon programme sous terminal car je veux pour l'ouvrir sur un serveur distant plus tard. Donc il ne peut pas y avoir d'ouverture de console.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ça ne change rien : ton application lira les fichiers en traitant l'encodage (voir InputStreamReader), ou depuis la console selon le besoin et l'environnement. C'est à ce moment et seulement à ce moment qu'on décode (on transforme des séries de bytes en séries char = des String). Et ensuite, l'application traite des String, point. Pas de transformation à faire. Lors de la production de données en sortie, idem, tu écriras dans les fichiers en précisant l'encoding.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. RichFaces Calendar :Problème encodage des accents
    Par devParis94 dans le forum JSF
    Réponses: 3
    Dernier message: 15/12/2008, 11h00
  2. [HTML] Encodage des accents en UTF-8 (très bizarre)
    Par Aspic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 02/07/2008, 14h01
  3. Problème avec des accents
    Par lea-akasha dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/06/2008, 10h22
  4. Affichage des accents avec UTF-8
    Par jlb59 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 18/12/2007, 19h56
  5. [ENCODAGE][JAVA]Afficher correctement des accents
    Par kornelius dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/02/2004, 16h37

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