Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2086932
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2009-04-14 08:58:11

发现用Windows资源管理器访问我在自己的Desktop上假设的vsftpd乱码的问题已经有一段时间了,该问题具体如下:
  1. 如果我在自己的Gentoo Linux上的ftp共享文件夹放置了中文文件名的文件,用Windows资源管理器浏览就会发现乱码,用Firefox和IE浏览则不会。
  2. 如果用Windows资源管理上传一个中文文件名的文件,则在本地的共享文件夹浏览为乱码,IE查看为正常中文。
  3. 将本地终端的字符编码改为UTF8,则由Windows资源管理器上传的文件的文件名为正常中文。由此可知,Windows资源管理器是用UTF8编码和我的vsftpd交互的。
为什么唯独Windows资源管理器用UTF8编码和vsftpd交互呢?并且印象中以前的vsftpd并没有这个问题,google了一下后,发现原来是:Windows资源管理器会在交互过程中发送“OPTS UTF8 ON”,如果ftp服务器能正确识别这条命令,那么后续的交互将都会以UTF8编码进行,否则不对编码做任何转换,即认为服务器和Windows编码一致;我的Gentoo Linux的本地编码为GB2312,而vsftpd总是假设服务器的运行环境为UTF8,这样问题就产生了。

为此,我针对vsftpd-2.0.7做了一个补丁。这个补丁引入了一个locale配置参数,用以表示服务器的本地编码,如果在和客户端交互的过程中遇到了"OPTS UTF8 ON"命令,那么后续交互的内容都在locale和UTF8之间做编码转换;否则,什么都不做,即假定本地编码和客户端编码一致。

补丁一并向vsftpd的维护者提交了,但到目前为止还没收到任何回复,故附在下面,以供和我有同样问题者使用。

文件:vsftpd-2.0.7-locale.diff.gz
大小:1KB
下载:下载

阅读(13701) | 评论(12) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-04-20 18:37:59

尝试一下IRC沟通一下,irc.freenode.net #vsftpd

xiaosuo2009-04-20 10:41:29

UTF8的locale只要客户端支持UTF8,那么设置客户端用UTF8和vsftpd交互就好。

chinaunix网友2009-04-20 09:32:03

vsftpd不支持多编码的问题由来以久了 gbk的locale还好,utf8的更麻烦

xiaosuo2009-04-19 21:58:31

其他版本我没试,应该也能用吧。到目前还没有得到任何回复,作者自己在网页上说被邮件给埋起来了,并且对于这样的中文补丁,一般得不到作者足够的重视,所以不期望能得到回复了。

chinaunix网友2009-04-19 17:18:06

只能对应2.0.7版本吗? 是否多提交几次反馈给vsftp的维护者,外国的软件开发者一般都很积极回复信件的,不像我们国内的大多都是石沉大海。