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
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 IN=new BufferedReader ( new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8"))); while ((ligne=IN.readLine())!= null) { champs= ligne.split(";"); //reste des traitements }
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
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);
La variable remark va être concatener à une autre variable String ,Cette variable peut contenir des caractère anglais et arab.
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"));
aprèes elle sera inserer dans une colonne du type CLOB
les parmetre nls_parametre de la BD sont ci dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Global_var=remark+var; //insertion dans la BD
Avec tous ces changement tous les donneés en arabes inseré sont tout simplement des point d'nterrogation. "???"
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
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
Partager