zip在linux上解压出错Unicode编码-解决

unzip xxx.zip

中文名称变为:

#U6570#U503c#U7a33#U5b9a#U6027.md

解决方式:

在解压后的目录下执行脚本:

python 复制代码
python3 - << 'EOF'
import os, re

pat = re.compile(r'#U([0-9a-fA-F]{4})')

def unescape(name: str) -> str:
    return pat.sub(lambda m: chr(int(m.group(1), 16)), name)

changed = 0
for root, dirs, files in os.walk('.', topdown=False):
    for name in dirs + files:
        new = unescape(name)
        if new != name:
            src = os.path.join(root, name)
            dst = os.path.join(root, new)
            os.rename(src, dst)
            print(f"{src} -> {dst}")
            changed += 1

print(f"\nDone. Renamed {changed} items.")
EOF

执行完毕显示正常!

./notes/11-#U6a21#U578b#U9009#U62e9+#U8fc7#U62df#U5408#U548c#U6b20#U62df#U5408.md -> ./notes/11-模型选择+过拟合和欠拟合.md

Done. Renamed 98 items.

相关推荐
guts35028 分钟前
图像篡改数据集下载:COVERAGE、CASIA
python·数据集
todoitbo30 分钟前
用虚拟局域网打通 Win/Mac/Linux 三端:跨设备协作的实用方案
linux·运维·macos
源远流长jerry33 分钟前
RDMA 基本操作类型详解:从双端通信到单端直访
linux·网络·tcp/ip·ip
森林猿40 分钟前
java-modbus-读取-modbus4j
java·网络·python
2401_879693871 小时前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
chushiyunen1 小时前
python chatTts实现tts文本转语音、音频
python
FreakStudio1 小时前
把 Flask 搬进 ESP32,高中生自研嵌入式 Web 框架 MicroFlask !
python·单片机·嵌入式·cortex-m3·异步编程·电子diy
Sylvia-girl1 小时前
Linux下的基本指令1
linux·运维·服务器
wyt5314292 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
17(无规则自律)2 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件