Bonjour,

J'ai un traitement Sunopsis qui utilise un programme java pour lire un fichier xml et intégrer les données dans une base de données Sybase IQ.

Mon problème est que les accents sont remplacés par des ? lors de l'insertion dans la base.

Le fichier xml a l'entete :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
<?xml version="1.0" encoding="UTF-8"?>
On utilise un fichier xsd qui a la même entête.

Par contre le charset de la base est iso_1

Voici le code Java qui créé des fichiers temporaires :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
pw_0 = new PrintWriter(file_0, "UTF-8");
 
pw_1 = new PrintWriter(file_1, "UTF-8");
pw_2 = new PrintWriter(file_2, "UTF-8");
pw_3 = new PrintWriter(file_3, "UTF-8");
pw_4 = new PrintWriter(file_4, "UTF-8");
pw_5 = new PrintWriter(file_5, "UTF-8");
pw_6 = new PrintWriter(file_6, "UTF-8");
pw_7 = new PrintWriter(file_7, "UTF-8");
pw_8 = new PrintWriter(file_8, "UTF-8");
Voici l'ancien code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
//	pw_0 = new PrintWriter(new FileOutputStream(file_0, false));
//	pw_1 = new PrintWriter(new FileOutputStream(file_1, false));
//	pw_2 = new PrintWriter(new FileOutputStream(file_2, false));
//	pw_3 = new PrintWriter(new FileOutputStream(file_3, false));
//	pw_4 = new PrintWriter(new FileOutputStream(file_4, false));
//	pw_5 = new PrintWriter(new FileOutputStream(file_5, false));
//	pw_6 = new PrintWriter(new FileOutputStream(file_6, false));
//	pw_7 = new PrintWriter(new FileOutputStream(file_7, false));
//	pw_8 = new PrintWriter(new FileOutputStream(file_8, false));

Ensuite pour chaque fichier xml on fait une validation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Schema schemaFile = factory.newSchema(new StreamSource(MainOpCom.class.getClassLoader().getResourceAsStream("xxx.xsd")));
 
Validator validator = schemaFile.newValidator();
 
validator.validate(new StreamSource(new FileInputStream(inputXMLFile)));

Et c'est là que ça plante


ça fait 3 jours que j'ai ce problème et je n'ai plus de solution à tester.

Si quelqu'un a une idée ...


Merci