【发布时间】:2020-09-20 16:50:05
【问题描述】:
问题
我有一个 zip 文件,我想在 Ubuntu 上用正确的文件名解压缩(它们包含 æ、ø、å)。
我尝试过的:
1。在 Windows 10 中解压缩 - 工作!
一切正常,文件名正确。
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 似乎有一些我无法复制的魔法。你们对这个“MAGIC”是什么有什么建议吗?
- 如何识别 zip 文件的文件名编码?
- 在哪里可以获得第 7 步的所有编码列表。
- 有没有什么简单的方法可以解决这个问题而无需编写例如python 脚本?
【问题讨论】:
标签: windows ubuntu encoding unzip winrar