我尝试用java编写一个归档程序,它创建TAR或ZIP归档文件,并使用正确的西里尔文文件名,然后在linux中打开。在windows中,我使用来自ant的org.apache.tools.zip:
ZipOutputStream.setEncoding("cp866"); 来获取它,但是linux中的文件滚轮(存档管理器)不理解它。在org.apache.tools.tar方法中,setEncoding()不存在。此外,我还尝试使用其他支持西里尔字母的编码,例如cp1251、utf-8、koi-8r,但没有任何结果。
发布于 2011-08-06 02:39:00
您的文件可能正确地创建了文件,问题出在文件滚轮上。已知它不能检测文件名的编码。参见here和here。
尝试直接从shell使用unzip(文件名可能会乱码)或p7zip (还有一个java版本- j7zip)。
7zip适用于我,使用西里尔字符的utf8编码。文件滚轮,方舟,和所有其他实际上执行解压缩将破坏我的系统中的文件名。
https://stackoverflow.com/questions/5240569
复制相似问题