Encoding 使用不同的文件名编码压缩或解压缩文件?

Encoding 使用不同的文件名编码压缩或解压缩文件?,encoding,zip,unzip,Encoding,Zip,Unzip,我在Linux服务器上有一个ASCII以外的文件要压缩。不幸的是,UTF8编码的文件在Windows上提取时总是文件名损坏 有没有一种方法可以压缩名称编码为与本地系统字符集不同的特定字符集的文件?或者有没有工具可以在Windows上提取具有正确名称的UTF8编码文件 (如果解决方案是脚本,则首选PHP或Python。)使用7z或7zip 使用7-zip在Linux上压缩文件,在Windows上解压文件。对于python2(文件名为俄语),请使用cp866 with zipfile.ZipFile

我在Linux服务器上有一个ASCII以外的文件要压缩。不幸的是,UTF8编码的文件在Windows上提取时总是文件名损坏

有没有一种方法可以压缩名称编码为与本地系统字符集不同的特定字符集的文件?或者有没有工具可以在Windows上提取具有正确名称的UTF8编码文件

(如果解决方案是脚本,则首选PHP或Python。)

使用7z或7zip

使用7-zip在Linux上压缩文件,在Windows上解压文件。

对于python2(文件名为俄语),请使用cp866

with zipfile.ZipFile(file_handle, mode='w') as zip_file:
    for file_ in self._files.all():
        path = file_.file.path

        filename = u'Название файла.txt'
        try:
            filename = filename_utf.encode('cp866')
        except:
            ext = str(path.split('.')[-1])
            filename = '%s.%s' % (uuid4().hex, ext)

        zip_file.write(path, filename)
对于python 3

file_handle = BytesIO()
with zipfile.ZipFile(file_handle, mode='w') as zip_file:
    for file_obj in files:
        zip_file.write(filename=file_obj.full_path, arcname=file_obj.file_name)

好问题,但属于超级用户之类的。这是一个编程网站。python解决方案就在这里。请尝试解释一下您是如何帮助其他人更好地理解您的答案的。您是对的,我现在将描述这个主题