目录
目录X
Windows与Linux之间文件传输导致中文文件名乱码问题处理
AI摘要(BLUF)
本文介绍了Windows与Linux系统间传输文件时避免中文乱码的规范操作。主要方法包括:Windows向Linux传输时推荐打包为ZIP格式,使用`unzip -O GBK`命令解压;Linux内部拷贝需确保终端编码为UTF-8;SFTP远程传输客户端应设置UTF-8编码。对于已存在的GBK乱码文件名,可使用`convmv`工具进行转换,操作前需预览确认,执行时添加`--notest`参数。需要注意的是,转换仅修改文件名不改动文件内容,上传附件等目录禁止转码以避免数据库路径失效,且网站运行中改名可能造成页面短暂报错,建议在低峰期停机操作。
一、避免出现中文文件名乱码的规范操作
1. windows 传到 linux(推荐打包传输)
windows 把中文文件 / 文件夹打包为 ZIP(不要 RAR),上传压缩包到 Linux,解压是设置强制 GBK 转 UTF8
unzip -O GBK xxx.zip
2. Linux 内部互拷
确保终端编码为 UTF8(LANG=zh_CN.UTF-8),cp复制不会出现乱码。
3. SFTP / 远程工具传输
客户端连接编码必须设置为 UTF-8,禁止默认 GBK。
4. 禁止操作
不要直接拖拽 Windows 中文文件夹到 Linux 服务器本机 cp 复制,会保留 GBK 乱码文件名。
二、针对已有的 GBK 中文乱码的文件名修复处理
安装工具:yum install convmv -y / apt install convmv -y
1. 单目录递归预览(仅查看,不修改)
convmv -r -f GBK -t UTF-8 /webfuture/Views/
2. 执行真实改名
convmv -r -f GBK -t UTF-8 --notest /webfuture/Views/重启站点
风险提醒:convmv 只改文件名,不修改文件内容。