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

JDBC Java Discussion :

Affichage caractère arabes


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Affichage caractère arabes
    Bonsoir tout le monde
    mon problème est que Ma connexion a oracle s'etablie bien sans erreur sauf que mes données deja insérees a ma base de données en arabes s'affichent en ????????? dans le system.out.println
    y-a-t-il quelqu'un qui peut m'aider
    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    sans passer par la base de donnée, est-ce que tu arrive à afficher des caractères arabes dans la console. Que se passe-t-il par exemple si tu écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println("\u0623\u0624\u0625\u0626\u0627\u0628");
    System.out.println("\u0633\u0634\u0635\u0636\u0637\u0638");

    Tu devrais obtenir ça
    أؤإئاب
    سشصضطظ

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    Merci Monsieur tchize pour votre réponse.En fait les caractères s'affichent correctement avec System.out.println("\u0633\u0634\u0635\u0636\u0637\u0638"); mais mon problème est comment afficher les données recupéres a partir de ma base de données sur la console.Mes caractères arabes s'affichent comme ça sur la console ¿¿¿¿.
    Est ce que vous pouvez m'aider SVP.
    Merci

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    on peut voir ton code qui récupère les données de la base de donnée? Et ton url de connection à la base de donnée avec ses propriétés.

  5. #5
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par marram22 Voir le message
    Bonjour
    Merci .En fait les caractères s'affichent correctement avec System.out.println("\u0633\u0634\u0635\u0636\u0637\u0638");
    salut.
    est ce que tu utilise une version arabe de Windows ?

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    voici mon code,
    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
    import java.sql.*;
     class NewClass
    {
       static Connection con=null;
       static String connectionURL = null;
       private int getUnicode(String arChar)
    	{
                     int code=0;
    		 for(int i=0;i<arChar.length();i++)
     
                     {
                        code=arChar.codePointAt(i);
                        String s = String.valueOf(Character.toChars(code));
                        System.out.print(s);
     
                     }
     
    		return code;
    	}
        public static void main(String[] args)
        {
           NewClass N=new NewClass();
     
          try
         {
          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
          connectionURL = "jdbc:oracle:thin:@IP:port:orcl";
          System.out.println ("driver etablie");
          con=DriverManager.getConnection(connectionURL ,"system","sys");
          System.out.println ("connexion base etablie");
          Statement s=con.createStatement();
          String sql = "select * from employe where num =1 ";
          ResultSet rs = s.executeQuery(sql);
          System.out.println("no.  \tName   ");
                while (rs.next())
                {
                    System.out.print(rs.getObject("num") + "   \t");
                    System.out.print(rs.getString("nom") + "   \t");
                    N.getUnicode("\n la chaine convertie  "+rs.getString("nom"));
                }
          s.close();
          con.close();
       } catch(Exception e){e.printStackTrace();}
        }
     
    }
    l'affichage est le suivant
    driver etablie
    connexion base etablie
    no. Name
    1 äÇÏíÉ

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Non Slim_java j'utilise pas la version windows arabe

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    quel est l'encodage utilisé par la table sur le serveur? (Tu devra peut etre le demander à ton DBA). Aussi, as tu toujours le même problème quand tu rajoute le paramètre

    à l'exécution de ta jvm?

  9. #9
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    salut
    tu peux spécifier l'encodage dans L'url JDBC , par exemple avec mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jdbc:mysql://localhost:num_port/nom_base?useUnicode=true&characterEncoding=UTF-8

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Salut,
    et si la base de données est orcale quel est l'équivalent de ceci
    jdbc:mysql://localhost:num_port/nom_base useUnicode=true&characterEncoding=UTF-8

  11. #11
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Vous cherchez tous trop loin, c'est juste que la console du monsieur ne prend pas en charge la langue Arabe ou les charset exotiques (l'UTF-8 est un charset exotique du point de vue de la console Windows ), il serait donc bien en peine d'en afficher dessus.

    Cf http://wei-jiang.com/system/windows/...s-command-line

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par marram22 Voir le message
    Salut,
    et si la base de données est orcale quel est l'équivalent de ceci
    jdbc:mysql://localhost:num_port/nom_base useUnicode=true&characterEncoding=UTF-8
    Par expérience, oracle, c'estun problème. Cette s*** de driver utiliser l"ncodage par défaut de la plateforme pour discuter avec le serveur. Alors si cet encodage gère les caractères arabe, pas de soucis. Mais si il les gère pas, t'aura de la troncature de ses caractère car ils ne savent pas rentre "dans le tuyaux". Et pour ça, pas d'autre choix que le -Dfile.encoding=UTF-8 au démarrage de a jvm. Bon j'avais eu ce soucis il y a 5 ans, le driver s'est peut etre amélioré. PS: comme dit sinok: voir d'abord si la console gère cet encodage

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Salut,
    Bon mon problème est comment je peux afficher des caractères arabes en java(affichage sur la console)

    NB : je travaille avec éclipse et le données dont je souhaite afficher sont stockés sous oracle correctement en arabe)

    j'ai essayé de modifier le codage de la console en utf8, de changer la police de la console en arial mais le problème persiste encore l'affichage est sous forme ; & # 1606
    depuis quelques jours j'essaie de trouver une solution mais en vain

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par marram22 Voir le message
    l'affichage est sous forme ; & # 1606
    Heu, ça ce sont des entité html, destinées à un navigateur internet. Je doute que tes données soit bien en arrabe dans ta DB si tu obtiens ça.

    Ca donne quoi dans la console quand tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("arabe: \u1606");

  15. #15
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Bonjour,

    marram22
    En fait les caractères s'affichent correctement avec System.out.println("\u0633\u0634\u0635\u0636\u0637\u0638");
    Du coup, on devrait pouvoir éliminer que ce soit la console qui ne gère pas bien l'encodage.

    Est-ce que tu as la possibilité de te connecter à cette base avec un client sql et en afficher les données en question ?

  16. #16
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Bonjour,merci pour vos réponses

    Oui tchize vous avez raison,mes données sont stockés avec ces codes la .d'ou provient ce problème???(j'ai essayé de modifier le codage de mon navigateur) le codage de mes pages .jsp(<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">) mais le meme problème

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben le problème viens clairement du processus qui encode dans la DB.

  18. #18
    Membre à l'essai
    Femme Profil pro
    etudiante
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiante
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    bonjour , moi mon problème est que lorsque je mets dans mon code System.out.println("\u0633\u0634\u0635\u0636\u0637\u0638"); les caractères arabes ne s'affichent pas il s'affiche des ???????? alors que mes données en arabe sont bien enregistrées dans la BD oracle , pouvez vous m'aider s'il vous plait

  19. #19
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En général, l'invite de commande windows n'est pas prévue pour afficher des caractères en UTF-8.

    Au lieu de faire un System.out.println, écris plutôt dans un fichier texte, et tu verras si le résultat est bon.

Discussions similaires

  1. [2.2.2] Probléme affichage caractères arabes
    Par alexandre_71 dans le forum BIRT
    Réponses: 8
    Dernier message: 13/02/2009, 14h49
  2. Réponses: 1
    Dernier message: 31/12/2008, 09h04
  3. [XSL-FO][FOP] problème d'affichage des caractère arabe
    Par MedNaceur dans le forum XSL/XSLT/XPATH
    Réponses: 19
    Dernier message: 27/11/2008, 17h43
  4. affichage caractères arabes
    Par fermed dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/06/2008, 09h45
  5. PB Affichage caractère ARABIC
    Par beirouke dans le forum Oracle
    Réponses: 2
    Dernier message: 21/09/2006, 12h28

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