免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2164 | 回复: 0
打印 上一主题 下一主题

解决vsftpd用Windows资源管理器访问的乱码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-14 08:58 |只看该作者 |倒序浏览

                                发现用Windows资源管理器访问我在自己的Desktop上假设的vsftpd乱码的问题已经有一段时间了,该问题具体如下:
  • 如果我在自己的Gentoo Linux上的ftp共享文件夹放置了中文文件名的文件,用Windows资源管理器浏览就会发现乱码,用Firefox和IE浏览则不会。
  • 如果用Windows资源管理上传一个中文文件名的文件,则在本地的共享文件夹浏览为乱码,IE查看为正常中文。
  • 将本地终端的字符编码改为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
            下载:
    下载
           
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5251/showart_1899780.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP