J'essaie de sauvegarder un fichier .txt depuis un code JAVA, dans une machine Windows 7, et ce code le code dans ANSI, mais lorsque je fais la même chose dans un Windows Server 2000, le code est enregistré en UTF.Mon code JAVA enregistre un .txt dans un codage différent (ANSI, UTF, ...) en fonction du système d'exploitation
Je fais des tests différents et j'ai vérifié que le codage change lorsque je cours le code chaque fois dans Windows Server 2000 sans modifications sur le code.
je suis d'enregistrer le fichier dans un fichier zip et le code est le suivant (je l'ai changé « Cp1252 » par « ISO-8859-1 » mais le résultat est le même):
public byte[] getBytesZipFile(String nombreFichero, String input) throws IOException {
String tempdir = System.getProperty("java.io.tmpdir");
if (!(tempdir.endsWith("/") || tempdir.endsWith("\\"))) {
tempdir = tempdir + System.getProperty("file.separator");
}
File tempFile = new File(tempdir + nombreFichero + ".txt");
try {
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tempFile), "Cp1252"));
bufferedWriter.write(input);
bufferedWriter.flush();
bufferedWriter.close();
ByteArrayOutputStream byteArrayOutputStreambos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(byteArrayOutputStreambos);
FileInputStream fileInputStream = new FileInputStream(tempFile);
zipOutputStream.putNextEntry(new ZipEntry(tempFile.getName()));
byte[] buf = new byte[1024];
int len;
while ((len = fileInputStream.read(buf)) > 0) {
zipOutputStream.write(buf, 0, len);
}
zipOutputStream.closeEntry();
fileInputStream.close();
zipOutputStream.flush();
zipOutputStream.close();
return byteArrayOutputStreambos.toByteArray();
} finally {
tempFile.delete();
}
}
Merci par l'aide et les réponses et salutations
Quelle est votre version JVM? – adranale
Je fais les tests avec le 6 et le 7 et le résultat est le même. –
Je suis surpris que Java 6 et 7 peut même fonctionner dans Windows Server 2000. –