原因:vsftpd没有处理字符编码的转换,Windows使用的是GBK编码,而linux一般使用UTF-8编码。
解决办法:
1、使用vsftpd的补丁,目前只有vsftpd-2.0.3-encoding.patch.tar.bz2
2、使用能够设置编码的FTP客户端
如FlashFXP 4.2.1,选择【站点】-【站点管理器】-【站点列表】-【快速连接】,选择使用的连接,点击【选项】-【字符编码】-【UTF-8】。
3、转换服务器目录文件编码[未测试]
linux下:
convmvfs /ftp/pub_gbk -o srcdir=/ftp/pub, icharset=utf8,ocharset=gbk
的代码,那么访问/ftp/pub_gbk的时候文件名就都是GBK的了,windows下也就不会有乱码。
也可以用下面这个命令把文件名编码转换一下:
convmv -f UTF-8 -t GBK -r yourfile --notest
不用--notest选项,只显示转换后的结果,不对文件真正进行操作
4、换能够处理字符编码的ftp服务器,如pureftp