在 Debian 下使用 FTP 时出现乱码,通常是字符编码不一致导致的(服务器端 vs 客户端 vs 终端)。下面按常见场景给你解决方案。
先确认终端编码:
locale
应为:
LANG=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
如果不是:
sudo dpkg-reconfigure locales
选 zh_CN.UTF-8 并设为默认。
lftp 对中文支持最好。
sudo apt install lftp
连接时指定编码:
lftp ftp://user@host
进入后:
set ftp:charset UTF-8
set file:charset UTF-8
或者一行命令:
lftp ftp://user:pass@host -e "set ftp:charset UTF-8; set file:charset UTF-8; ls"
传统 ftp 不支持编码设置,中文基本必乱码。
✅ 建议直接换 lftp
如果你是 Debian 上搭建 FTP 服务器,客户端看到乱码:
编辑:
sudo nano /etc/vsftpd.conf
加入或确认:
utf8_filesystem=YES
重启:
sudo systemctl restart vsftpd
⚠️ 注意:
Windows 资源管理器只支持 GBK
解决方式:
如果文件已经传乱了:
查看真实编码:
file filename
转换文件名(如 GBK → UTF-8):
convmv -f GBK -t UTF-8 --notest filename
安装:
sudo apt install convmv
✅ 客户端:用 lftp + UTF-8
✅ 服务器:vsftpd 开 utf8_filesystem=YES
❌ 别用传统 ftp 命令
如果你能告诉我:
我可以给你更精确的命令。