0

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();
    }
}

ヘルプと回答とよろしくお願いします

4

1 に答える 1