我试图在 Windows 7 机器中保存一个 .txt 文件,因为它是 JAVA 代码,并且它以 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();
}
}
感谢您的帮助和回答和问候