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 :

Insertion caractères arabes à partir d'une application Java Standard


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut Insertion caractères arabes à partir d'une application Java Standard
    Je developpe une application Java qui doit insèrer des données mixtes (anglais , arab) dans une base de données.

    les donnés sont lus depuis une fichier en entrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IN=new BufferedReader ( new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8")));
    while ((ligne=IN.readLine())!= null)
    		{	 
    		    champs= ligne.split(";");
               //reste des traitements 
                     }
    j'ai implementé mon DriverManager pour supporter le UTF-8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Properties prop = new Properties();
    	     prop.put("user", user);
    	     prop.put("password", password);
    	     prop.put("useUnicode", "yes");
    	     prop.put("characterEncoding", "UTF-8");
                 //path : url de la BD
    	      con = DriverManager.getConnection(path, prop);
    Aussi j'ai implementé les variables qui vont être codé en arab comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //remark : variable en langue arabe
    remark=new String (var_string_arab);
    remark=new String (remark.getBytes("UTF-8"));
    La variable remark va être concatener à une autre variable String ,Cette variable peut contenir des caractère anglais et arab.
    aprèes elle sera inserer dans une colonne du type CLOB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Global_var=remark+var;
    //insertion dans la BD
    les parmetre nls_parametre de la BD sont ci dessous
    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
    PARAMETER    	                    VALUE
    
    NLS_LANGUAGE	                    FRENCH
    NLS_TERRITORY	                    FRANCE
    NLS_CURRENCY	                     ?
    NLS_ISO_CURRENCY	            FRANCE
    NLS_NUMERIC_CHARACTERS	    , 
    NLS_CALENDAR	                    GREGORIAN
    NLS_DATE_FORMAT	            DD/MM/RR
    NLS_DATE_LANGUAGE	            FRENCH
    NLS_CHARACTERSET	            AR8ISO8859P6
    NLS_SORT	FRENCH
    NLS_TIME_FORMAT	             HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT	     DD/MM/RR HH24:MI:SSXFF
    NLS_TIME_TZ_FORMAT 	     HH24:MI:SSXFF TZR
    NLS_TIMESTAMP_TZ_FORMAT     DD/MM/RR HH24:MI:SSXFF TZR
    NLS_DUAL_CURRENCY	              ?NLS_NCHAR_CHARACTERSET	      UTF8
    NLS_COMP	BINARY
    NLS_LENGTH_SEMANTICS	      BYTE
    NLS_NCHAR_CONV_EXCP	      FALSE
    Avec tous ces changement tous les donneés en arabes inseré sont tout simplement des point d'nterrogation. "???"

    Avez vous une idées pour m'aider à fixer ce problème, je galère depuis trois jours sans aucun résultat.

    Merci d'avance

  2. #2
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par jamelledine_med Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //remark : variable en langue arabe
    remark=new String (var_string_arab);
    remark=new String (remark.getBytes("UTF-8"));
    Ce conde est une erreur, tu va prendre les byte représentant ta string en utf-8 et reconstruire un String en supposant que les byte sont dans le "charset standard". Dans le meilleurs des cas, ça ne fera rien. Dans les autre cas ca va corompre ta String.



    Enfin:
    Avec tous ces changement tous les donneés en arabes inseré sont tout simplement des point d'nterrogation. "???"
    Comment vérifie-tu ça? Le mieux pour t'assurer que c'est bien un problème avec la DB, c'est de

    1) faire le inser
    2) faire immédiatement un select de la même donnée
    3) vérifier que donneeRecue.equals(donneeEnvoyee)

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Par défaut
    Merci pour votre reponse

    enfait c'es tje que j'ai viens de faire j'ai fait le select juste après l'insert

    le texte soi disons inserés et qui est afficher dans les logs est :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    <remark>جوائز موبينيل - 5000 نقطة</remark>

    mais la requete select retourne ce que suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <remark>?????????? ?????????????? - 5000 ????????</remark>
    vraiment je suis totalement perdu , je sais pas si ca vien du code ou de la BD elle mm.

    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. telnet a partir d'une application java
    Par ayadi_rajaa dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 09/07/2013, 16h46
  2. [JavaService] Création d'un service a partir d'une application java en Jar)
    Par maxxper59 dans le forum EDI et Outils pour Java
    Réponses: 6
    Dernier message: 09/11/2010, 10h50
  3. Réponses: 0
    Dernier message: 31/03/2008, 13h06
  4. Réponses: 1
    Dernier message: 02/02/2007, 10h29
  5. lire un fichier xml à partir d'une application java
    Par diamonds dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/01/2007, 18h23

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