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 :
<?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 :
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 :
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 :
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
Partager