求助:7-Zip命令行解压含特殊字符压缩包时如何保留原特殊字符
求助:7-Zip命令行解压含特殊字符压缩包时如何保留原特殊字符
嗨,这个问题我之前帮朋友排查过,本质是命令行的编码设置和7-Zip的字符集参数没匹配上,导致特殊字符被转成了Unicode编码的替代格式。给你几个亲测有效的解决方法:
先切换命令行编码再解压
打开命令提示符(cmd)后,先执行这条命令切换到UTF-8编码:chcp 65001
然后再用7-Zip的解压命令,同时指定字符集参数:7z x 你的压缩包文件名.7z -scsUTF-8
这里的-scsUTF-8是告诉7-Zip用UTF-8来解析压缩包里的文件名,配合cmd的UTF-8编码就能正确识别€、带重音的字母这些特殊字符了。改用PowerShell执行解压
PowerShell对UTF-8的原生支持比cmd好很多,直接打开PowerShell,运行基础的解压命令就行:7z x 你的压缩包文件名.7z
如果还是有问题,同样可以加上-scsUTF-8参数,一般都能解决。升级7-Zip到最新版本
旧版本的7-Zip对特殊字符的兼容性确实差一些,尤其是一些比较少见的Unicode字符,升级到最新稳定版后,很多编码问题会自动修复。
另外补充一下,你看到的Belgi#U00eb.tif这种命名,是7-Zip在无法识别当前编码下的字符时,自动用Unicode码点(这里的U00eb就是ë的Unicode编码)来替代的表现,只要编码匹配正确,就能还原成原文件名啦。
备注:内容来源于stack exchange,提问作者jarod




