LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 810|回复: 5

vsftpd 处理中文文件名的问题

[复制链接]
发表于 2009-12-21 14:15:56 | 显示全部楼层 |阅读模式
centos 5.4
locale=zh_cn.utf-8
vsftpd-2.2.1

windows用户上传文件名为"测试.txt"的文件,中文显示正常;
上传文件名为"测试阿.txt"的文件,显示为测试???txt

没碰到过这么怪异的问题。
发表于 2009-12-21 15:09:14 | 显示全部楼层
貌似客户端显示的问题吧?你在服务器上ls也是???txt?
回复 支持 反对

使用道具 举报

发表于 2009-12-21 15:40:41 | 显示全部楼层
客户端的问题,使用支持 utf-8 的客户端就行。比如 filezilla 。
回复 支持 反对

使用道具 举报

发表于 2009-12-21 15:47:15 | 显示全部楼层
好像有看到过打过补丁的vsftpd,支持window客户端直接操作。
回复 支持 反对

使用道具 举报

发表于 2009-12-21 17:47:32 | 显示全部楼层
不打补丁也可以windows客户端直接操作,只不过在server端会看到乱码。
因为这样操作的文件名是按照CP936编码的,由windows存的文件,再由windows客户端读取,文件名并不会出问题。如果是在server端新建一个中文文件名的文件,这时文件名以UTF-8编码,windows客户端就会显示为乱码。

比较简单的解决方法是把server的字符集编码设置为GBK或GB2312或GB18030。两边编码相同自然就没有问题了;
或者坚持在windows下使用支持UTF-8的FTP客户端;
再或者,给vsftpd打补丁;
再或者换个支持自动编码转换的ftp server,记得proftp好像可以的。
回复 支持 反对

使用道具 举报

发表于 2009-12-21 20:19:15 | 显示全部楼层
vsftpd和proftpd的编码转换应该是没有问题的,问题应该在Win端,我试过,无论是哪个,在Win下用“我的电脑”传过来的中文名文件,绝大多数都会出现乱码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表