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 :

encodage des textes arabe


Sujet :

Langage Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 71
    Points : 64
    Points
    64
    Par défaut encodage des textes arabe
    bonsoir
    je développe un programme de base de données avec java et access ,bon j'ai fait plusieurs programme de ce genre, mais cette fois la je me trouve face a un problème qui m'oblige de demander votre aide ,mon probème c est que les données sont en arabe .
    quand je récupère les données saisi (en arabe) par l'utilisateur depuis un jtextfield avec la méthode getText() et je les insère dans la base le résultat est rien que des ?????,?????,?????....
    j'ai essayé d'afficher ces données dans la console avec System.ou mais c toujour la même résultat pourtant j'ai changer l'encodage en utf-8
    String text =JtextField.getText();
    System.out.println(text.getBytes("UTF-8"));

    mon OS win xp
    IDE est Netbeans
    jdk 1.6

    merci d'avance

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    la première chose que je ferais, si vous en avez la possibilité, c'est de jeter access aux orties et utiliser une base de données. L'accès à access depuis java nécessite de passer par un double pont jdbc-odbc / odbc-access. Le résultat est un système pas très fiable avec pas mal de limitations. Il y a de fortes chances que votre soucis vienne de là.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Quant au test dans la console Windows, il est pas fiable.
    Java et la console Windows ne savent pas s'entendre, ce qui fait que dans ce cas elle est bloquée en codepage 850, totalement incapable d'afficher de l'arabe donc.

    Pour faire un test de ce genre, enregistre le texte dans un fichier (encodage UTF-8, oui.) Je ne sais pas reconnaître du texte arabe, mais avec ce test j'avais des trucs qui semblaient pareils dans mon text field et dans mon fichier. Et les séquences de codepoints unicodes étaient identiques.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    java et la console windows s'entendent très bien, au contraire. Java utilise correctement l'encodage que supporte la console pour sont printstream. Si sa console windows est dans une codepage arabe, ca ne devrait pas etre un soucis. Le meilleur moyen de s'en assurer c'est d'y afficher de l'arabe Par contre, et ce n'est pas spécifique à java, il est vrai que la console windows est vachement limitée puisque ne supportant pas l'unicode complet

    exemple, si la console affiche bien de l'arabe avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("\u062A\u062B\u062C \u062D");
    la console n'est pas en cause

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Pas d'accord. Quand un programme a besoin d'un codepage précis dans la console pour afficher ce qu'on veut, il peut parfaitement le faire.
    C'est la raison pour laquelle les gens ne comprennent pas quand on leur dit que sans modification de conf, une console Windows française ne peut pas afficher d'arabe : parce que c'est faux et qu'ils l'ont vu de nombreuses fois.

    En Java, par contre, ce changement n'est pas faisable à ma connaissance. On pourrait décider de configurer la console en utf-8 (et file.enconding aussi) dès le départ avant de lancer le programme, mais :
    - c'est contraignant
    - c'est plus facile à dire qu'à faire : les .bat s'utilisent différemment dans ce cas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 71
    Points : 64
    Points
    64
    Par défaut
    bonjour
    merci pour l'interaction
    la première chose que je ferais, si vous en avez la possibilité, c'est de jeter access aux orties et utiliser une base de données
    merci moi aussi je pense a faire ca dans le future mais mon programme n'est pas tellement compliqué (insertion affichage et modification) en plus je profite de la mise en page et l'impression offrir par l'outil office(access et exel)
    bon pour mon problème,oubliant la console ,est-ce que quelqu'un peut me proposé une solution pour que je puisse insérer et afficher mes données normalement (des mots arabe lisible )
    remarque:j'affiche le contenu de mes tables bdd dans un Jtable

    merci encore

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    L'encodage est à définir lors de ta connexion JDBC via les properties (exemple ici : http://download.oracle.com/javase/1....bc/bridge.html )


    Au passage ce même lien rappelle bien que Sun/Oracle a toujours considéré ce bridge JDBC/ODBC comme une solution temporaire...


    a++

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Sauf que le pont jdbc/odbc utilisé dans le cas d'access est foireux et gère mal l'UTF-16, UTF-16 qui est le charset utiliser dans access 2000/2003 et suivants.


    Cf: http://bugs.sun.com/bugdatabase/view...bug_id=6345277
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    solution temporaire mais surtout "non supportée". Donc ne pas faire d'application critique autres que des protoypes ou des applications d'import one-shot avec ça.

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 71
    Points : 64
    Points
    64
    Par défaut
    salut
    ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.util.Properties prop = new java.util.Properties();
           prop.put("charSet", "UTF-8");
     
    con =DriverManager.getConnection(url,prop);

    bon sincèrement safé presque un mois que j'ai décidé d'apprendre l'oracle et c 'est pas facile donc en attendant j'utilise l'access via le bridje jdbc:odbc


    je vous remercie pour vos conseils

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    rien de particulier à apprendre avec oracle. Sauf si tu veux gérer toi même la DB, mais en temps que programmeur, t'aura toujours un DBA pour le faire pour toi. Si c'est pour des applications non distribuées, il existe aussi des bases de données embarquées en java très performantes, pour info

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 71
    Points : 64
    Points
    64
    Par défaut
    Si c'est pour des applications non distribuées, il existe aussi des bases de données embarquées en java très performantes, pour info
    plus de détaille s'il vous plait

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    regardez du coté de H2Database, HSQLDB et Derby. Ce sont des bases de données implémentée en java avec 0 installation à faire. L'idéal pour servir avec des petits programmes ou quand on ne veux pas se coltiner l'installation d'une grosse DB et sa maintenance.

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 71
    Points : 64
    Points
    64
    Par défaut
    merci

Discussions similaires

  1. Encodage des caractères arabes
    Par elabadiabdelmoula dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/01/2013, 19h09
  2. [MySQL] probleme avec l'encodage des caracteres arabes
    Par diengkals dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 10/09/2012, 15h20
  3. Encodage des lettres arabes
    Par bailamos dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2007, 00h23
  4. [MySQL] Encodage des caractères dans un fichier texte
    Par louveteau02 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/04/2007, 10h41
  5. Réponses: 3
    Dernier message: 28/11/2006, 16h43

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