Windows 7 マシンで Java コードから .txt ファイルを保存しようとしていますが、コードは ANSI でエンコードされますが、Windows Server 2000 で同じことを行うと、コードは UTF で保存されます。
私はさまざまなテストを行っており、コードを変更せずに Windows Server 2000 でコードを実行するたびにエンコーディングが変更されていることを確認しました。
ファイルをzipファイルに保存しています。コードは次のとおりです(「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();
}
}
ヘルプと回答とよろしくお願いします