在Ubuntu上解压缩后文件名错误

问题描述 投票:1回答:1

问题

我有一个zip文件,我想在Ubuntu上使用正确的文件名解压缩(它们包含æ,ø,å)。

我尝试过的:

1。 Windows 10中的Unrar-工作!

一切正常,文件名正确。

2。在Ubuntu中解压缩

unzip file.zip

文件名中缺少字符æ,ø和å,其中'æ'被替换为'C'。

我尝试检测zip文件的编码,但似乎什么都没告诉我。

file file.zip

3。在Ubuntu中使用编码解压缩]

[我尝试使用通常用于包含æ,ø,å的文本的各种编码来解压缩文件。

unzip -O UTF-8 file.zip
unzip -O ISO-8859-1 file.zip
unzip -O windows-1257 file.zip

没有工作...

4。在Ubuntu中使用7zip解压缩

建议7zip可以解决问题,但没有。。>

7z x file.zip

5。在Ubuntu中使用7zip和丹麦语设置解压缩

建议我更改ubuntu语言设置,然后重试。

saveLang=$LANG
export LANG=da_DK
7z x file.zip
export LANG=$saveLang

这也不起作用。

6。在Ubuntu中使用Python3解压缩-工作!

如果我为此目的使用Python3,则解压缩可以正常工作,但是必须有一种更简单的方法吗?

import zipfile

with zipfile.ZipFile('file.zip', "r") as z:
  z.extractall("/home/xxxx/")

7。下一步

我正在考虑查找“所有”编码的列表,然后仅提取文件名并手动进行处理。与此类似...

while read p; do
  echo "$p"
  unzip -j -O $p file.zip
done <encodings.txt

结论

Windows和Python3似乎有些不可思议的作用,我无法复制。你们对这个“魔术”有什么建议吗?

  • 如何识别zip文件的文件名编码?
  • 我在哪里可以获得步骤7的所有编码的列表。
  • 是否有任何简单的方法可以解决此问题,而无需编写例如python脚本?

问题我有一个zip文件,我想在Ubuntu上使用正确的文件名解压缩(它们包含æ,ø,å)。我尝试了什么:1. Windows 10中的Unrar-工作!一切正常,并且...

windows ubuntu encoding unzip winrar
1个回答
1
投票

您提供的关键信息是Windows上的unrar能够正确创建文件名。因此,除非unrar在后台进行某些编码检测,否则这意味着很有可能zip文件中使用的编码与Windows设置中使用的默认代码页相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.