在银河麒麟系统上解压ZIP文件后文件名出现乱码,根本原因通常是Windows系统使用GBK编码压缩文件,而麒麟系统自带的解压工具默认按UTF-8解码,两者不匹配导致的。可以试试下面这几种方法解决。
🛠️ 解决方案
方法一:使用unzip -O命令(推荐,最直接有效)
这是最快速的方法,直接在终端用命令指定正确的编码解压。
- 打开终端,进入压缩包所在目录。
-
执行命令,指定GBK或CP936编码:
12unzip -O GBK 你的压缩包名.zip备注:O是大写字母O。
如果GBK不行,也可以试试
CP936或GB18030。
方法二:批量处理脚本(推荐,更实用)
如果你经常一次性处理多个ZIP文件,或者右键解压乱码需要返工,这个脚本会更高效。它会自动解压 当前目录下 所有指定后缀(如 .zip)的压缩包。
- 创建脚本文件:同样新建一个文件,比如命名为
batch_unzip_gbk.sh。 -
写入脚本内容:
12345678910111213141516171819202122232425262728#!/bin/bash# 批量解压当前目录下所有GBK编码的ZIP文件# 设置要处理的文件后缀,可以修改为 *.ZIP 等FILE_PATTERN="*.zip"echo "开始批量解压 GBK 编码的 ZIP 文件..."# 使用 for 循环遍历所有匹配的文件for ZIP_FILE in $FILE_PATTERN; do# 检查是否确实有文件,防止没有匹配时报错if [ ! -f "$ZIP_FILE" ]; thenecho "未找到任何 $FILE_PATTERN 文件。"breakfiecho "正在处理: $ZIP_FILE"# 以压缩包名称创建文件夹(去掉.zip后缀),将内容解压进去FOLDER_NAME="${ZIP_FILE%.zip}"# 如果同名文件夹不存在则创建,避免覆盖提示mkdir -p "$FOLDER_NAME"unzip -O GBK "$ZIP_FILE" -d "$FOLDER_NAME"echo "--- $ZIP_FILE 解压完成 ---"echo ""doneecho "所有文件处理完毕!" - 赋予执行权限:同样执行
chmod +x batch_unzip_gbk.sh。 -
使用方法:把这个脚本放在存放ZIP文件的文件夹里,打开终端执行
./batch_unzip_gbk.sh。它会自动处理目录下所有的.zip文件。
方法三:安装第三方解压软件
麒麟软件商店里可能有360压缩等第三方工具,它们通常内置了编码自动识别功能,能智能处理乱码问题,操作也更贴近Windows习惯。
方法四:更新或更换图形界面解压工具
如果你习惯右键解压,可以尝试调整系统的“归档管理器”。
- 升级Engrampa:更新自带的归档管理器到最新版,部分新版已修复此问题。
12sudo apt install --reinstall engrampa
- 更换为File-roller:卸载默认的Engrampa,安装另一个归档管理器File-roller,它可能对编码兼容性更好。
123sudo dpkg -P engrampa engrampa-commonsudo apt-get install -y file-roller