Я пытаюсь сохранить файл .txt с JAVA-кода на машине под управлением Windows 7, и он кодирует код в ANSI, но когда я делаю то же самое в Windows Server 2000, код сохраняется в UTF.Мой код JAVA сохраняет .txt в другой кодировке (ANSI, UTF, ...) в зависимости от операционной системы
Я делаю разные тесты, и я проверил, что кодировка меняется, когда я запускаю код каждый раз в Windows Server 2000 без изменений кода.
I'm сохранении файла в почтовый файл и код следующего (я изменил «CP1252» на «ISO-8859-1», но результат тот же):
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();
}
}
Спасибо за помощь и ответы и приветствует
Какова ваша версия JVM? – adranale
Я делаю тесты с 6 и 7, и результат тот же. –
Я удивлен, что Java 6 и 7 могут даже работать в Windows Server 2000. –