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

Langage Java Discussion :

Affichage des caractères accentués


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut Affichage des caractères accentués
    Bonjour à toutes et à tous,

    Quand je veux afficher des caractères accentués, j'obtiens des symboles autres que les caractères accentués voulus. Je suppose que ce problème est un grand classique.

    J'ai consulté la FAQ et j'ai trouvé deux solutions :

    1. remplacer chaque caractère par son équivalent \u00XX
    2. utiliser un transtypage tel que : String t1 = new String ( t0.getBytes(), "UTF-8" );


    Cela fonctionne bien, mais je trouve cela un peu pénible d'avoir à penser à chaque fois à ce genre de manipulation. Existe-t-il une méthode, une instruction, ... qui, placée en tête de l'application prendrait ce genre de problème en compte. Désolé, je n'ai pas trouvé.

    Merci de votre aide.

    Pierre.

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    La réponse directe à ta question est non.

    Cependant, il est un peu surprenant que tu aies eu des problèmes tels que tu les indiques. Il y a un pataques au niveau de ta config, ou bien tu as changé de machine à un moment ou à un autre.

    Le problème fondamental est qu'il faut gérer ça, car avec java on est, presque par hypothèse, en environnement multi-langue et multi-machine.

    Si par hasard tu étais en environnement mono-langue et machine, alors tu ne te serais même pas aperçu du problème.

  3. #3
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par ChPr
    Bonjour à toutes et à tous,

    Quand je veux afficher des caractères accentués, j'obtiens des symboles autres que les caractères accentués voulus. Je suppose que ce problème est un grand classique.

    J'ai consulté la FAQ et j'ai trouvé deux solutions :

    1. remplacer chaque caractère par son équivalent \u00XX
    2. utiliser un transtypage tel que : String t1 = new String ( t0.getBytes(), "UTF-8" );


    Cela fonctionne bien, mais je trouve cela un peu pénible d'avoir à penser à chaque fois à ce genre de manipulation. Existe-t-il une méthode, une instruction, ... qui, placée en tête de l'application prendrait ce genre de problème en compte. Désolé, je n'ai pas trouvé.

    Merci de votre aide.

    Pierre.
    Il faut que tu passes également tes sources en UTF-8. Dans eclipse, c'est par défaut sous ubuntu, sinon c'est windows preference, general, editor je crois. Si c'est juste pour appliquer à un projet (ou un sous-arbre du package explorer), clic droit, properties, dans info, tu peux changer l'encodage.
    Donc voilà il faut que tes sources soient en UTF8.
    Ensuite, il faut dire à javac que tes sources sont en utf8. Il suffit de rajouter le paramètre -encoding utf8 à javac.
    Dans ant, tu rajoutes encoding="utf8" dans la balise <javac...>.

    Si tout ton système est en utf8 (genre sous ubuntu si ta variable LANG est configurée en utf8), il me semble que tu peux te passer de ces attributs, car c'est l'encodage par défaut.

    D'ailleurs, utf8 devrait être le language par défaut partout... Malheureusement, bill préfère utiliser cp1252 ou iso8859-1, qui ne sont pas complets.

  4. #4
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut
    gifffftane et ®om, je vous remercie pour vos réponses.

    Mes fichiers sources sont bien en UTF-8.

    Quand je me place dans l'environnement "Ubuntu", je n'ai pas de problème.

    Mon problème ets donc uniquement à l'exécution dans l'environnement "Windows".

    Je travail avec NetBeans.

    Citation Envoyé par ®om
    Ensuite, il faut dire à javac que tes sources sont en utf8. Il suffit de rajouter le paramètre -encoding utf8 à javac.
    Dans ant, tu rajoutes encoding="utf8" dans la balise <javac...>.
    Comment je lui cause à javac ??? ... je n'ai pas de "ant" (du moins je n'ai rien vu de tel dans mon dossier projet !!

    En bébut de mon programme, j'ai modifié deux variables d'environnement "file.encoding" et "sun.jnu.encoding". elles valaient "Cp1252" et j'ai mis "UTF-8", ça n'a rien changé.

    Merci de votre aide.

    Pierre

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par ChPr
    Comment je lui cause à javac ??? ... je n'ai pas de "ant" (du moins je n'ai rien vu de tel dans mon dossier projet !!
    Je ne connais pas assez NetBeans pour te dire où changer cela. Mais il me semble qu'il travaille avec Ant, tu dois avoir un fichier build.xml dans ton projet (c'est ça ton fichier "ant").

    ?

  6. #6
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut
    Dans mon fichier build.xml, il n'y a pas de balise javac, j'ai ajouté celle-ci (on me demandait un chemin pour les soirces) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <javac srcdir="src" encoding="utf-8"/>
    avec au choix "utf8" ou "utf-8" ou UTF8" ou "UTF-8" ... aucune action.

    Que faire ?

    Cordialement.

    Pierre

  7. #7
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par ChPr
    Dans mon fichier build.xml, il n'y a pas de balise javac
    Tu peux faire un copier-coller de ce .xml?

  8. #8
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut
    Voilà ce que cela donne :
    Code xml : 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
    67
    68
    69
    70
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- You may freely edit this file. See commented blocks below for -->
    <!-- some examples of how to customize the build. -->
    <!-- (If you delete it and reopen the project it will be recreated.) -->
    <project name="Dessin" default="default" basedir=".">
        <description>Builds, tests, and runs the project Dessin.</description>
        <import file="nbproject/build-impl.xml"/>
        <javac srcdir="src" encoding="utf8"/>
        <!--
     
        There exist several targets which are by default empty and which can be 
        used for execution of your tasks. These targets are usually executed 
        before and after some main targets. They are: 
     
          -pre-init:                 called before initialization of project properties
          -post-init:                called after initialization of project properties
          -pre-compile:              called before javac compilation
          -post-compile:             called after javac compilation
          -pre-compile-single:       called before javac compilation of single file
          -post-compile-single:      called after javac compilation of single file
          -pre-compile-test:         called before javac compilation of JUnit tests
          -post-compile-test:        called after javac compilation of JUnit tests
          -pre-compile-test-single:  called before javac compilation of single JUnit test
          -post-compile-test-single: called after javac compilation of single JUunit test
          -pre-jar:                  called before JAR building
          -post-jar:                 called after JAR building
          -post-clean:               called after cleaning build products
     
        (Targets beginning with '-' are not intended to be called on their own.)
     
        Example of inserting an obfuscator after compilation could look like this:
     
            <target name="-post-compile">
                <obfuscate>
                    <fileset dir="${build.classes.dir}"/>
                </obfuscate>
            </target>
     
        For list of available properties check the imported 
        nbproject/build-impl.xml file. 
     
     
        Another way to customize the build is by overriding existing main targets.
        The targets of interest are: 
     
          -init-macrodef-javac:     defines macro for javac compilation
          -init-macrodef-junit:     defines macro for junit execution
          -init-macrodef-debug:     defines macro for class debugging
          -init-macrodef-java:      defines macro for class execution
          -do-jar-with-manifest:    JAR building (if you are using a manifest)
          -do-jar-without-manifest: JAR building (if you are not using a manifest)
          run:                      execution of project 
          -javadoc-build:           Javadoc generation
          test-report:              JUnit report generation
     
        An example of overriding the target for project execution could look like this:
     
            <target name="run" depends="Dessin-impl.jar">
                <exec dir="bin" executable="launcher.exe">
                    <arg file="${dist.jar}"/>
                </exec>
            </target>
     
        Notice that the overridden target depends on the jar target and not only on 
        the compile target as the regular run target does. Again, for a list of available 
        properties which you can use, check the target you are overriding in the
        nbproject/build-impl.xml file. 
     
        -->
    </project>
    Cordialement.

    Pierre

  9. #9
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    et build-impl.xml ? (je lis ça dans ton xml)

  10. #10
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut
    J'ai fait un fichier *.zip, car le fichier ne rentrait pas dans une réponse de ce forum. Le fichier concerné se trouve dans le sous répertoire "nbproject".

    Le projet

    Cordialement.

    Pierre

  11. #11
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par ChPr
    J'ai fait un fichier *.zip, car le fichier ne rentrait pas dans une réponse de ce forum. Le fichier concerné se trouve dans le sous répertoire "nbproject".

    Le projet

    Cordialement.

    Pierre
    Dans build-impl.xml tu as:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
    La voilà ta balise javac

  12. #12
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 074
    Points : 1 055
    Points
    1 055
    Par défaut
    Et bien ,grand merci, j'ai ajouté : encoding="utf8" à la fin de cette ligne et tous les caractères s'affichent correctement.

    Mais apparemment, il faudra que je fasse cette modif à chaque nouveau projet que je ferai. N'y a-t-il pas moyen de globaliser cela ? j'ai regardé dans l'IDE NetBeans et son aide, je n'ai rien trouvé (sûrement mal cherché).

    Cordialement.

    Pierre

Discussions similaires

  1. [OE] Affichage des caractères accentués
    Par marcel marie dans le forum Outlook Express / Windows Mail
    Réponses: 2
    Dernier message: 27/10/2008, 10h28
  2. [MySQL] Affichage des caractères accentués
    Par philippe57460 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 30/06/2008, 14h33
  3. [Tableaux] Affichage des caractères accentués
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2008, 20h34
  4. Problème d'affichage des caractères accentués
    Par Neuromancien2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 07/07/2007, 13h43
  5. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 06h58

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