您是否知道 Java 中的某些库/方法可以在适当的 Windows 国家代码页中生成带有文件名的 tar 存档(例如 cp1250 )。
我尝试使用Java tar,示例代码:
final TarEntry entry = new TarEntry( files[i] );
String filename = files[i].getPath().replaceAll( baseDir, "" );
entry.setName( new String( filename.getBytes(), "Cp1250" ) );
out.putNextEntry( entry );
...
它不起作用。我在 Windows 中提取焦油的地方,国家字符被破坏了。我还发现了一件奇怪的事情,在 Linux 下,波兰国家字符只有在我使用 ISO-8859-1 时才能正确显示:
entry.setName( new String( filename.getBytes(), "ISO-8859-1" ) );
尽管正确的波兰代码页是 ISO-8859-2,但它也不起作用。我也试过 Cp852 for windows,没有效果。
我知道 tar 格式的局限性,但改变它不是一种选择。
感谢您的建议,