JAVA/UNIX Insertion données en langue arabe
Je développe une application Java qui tourne sur UNIX elle doit insérer des données mixtes (anglais, arabe) dans une base de données.
Les données sont lues depuis une fichier en entrée :
Code:
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:
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); |
Les données seront inserées dans une colonne du type CLOB.
Les paramètres nls_parametre de la BDD sont ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 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 |
Tous les donneés en arabes inserées sont tout simplement des point d'nterrogation. "???"
Si je lance le programe java de ma machine windows xp l'insertion arabe est correcte, mais sur unix ça donne les "???"
Avez vous une idées pour m'aider à corriger ce problème, je galère depuis trois jours sans aucun résultat.
Merci d'avance.