傻b WindowsExplorer

为了让大家愉快地通过ftp上传大文件,我搭建了vsftpd。

为了省事更愉快,我让大家直接通过Windows资源管理器来连接ftp服务上传文件。

于是,喜闻乐见的编码问题。

Windows放以前应该一律GBK,不管是GB2312还是GB18000,都无所谓,反正都是GBK编码。

不负责任的讲,在最近的版本中开始尝试utf-8。但是他的utf-8实现还有问题,至少在ftp这个情景模式下。

先把utf-8编码的文件名,gbk一下。连接vsftp服务时,询问vsftp是否支持utf-8。

vsftp返回肯定回答。

于是傻b windows就重新把gbk后的文件名又utf8了,接着上传了一个不完整的文件名。

抓包可证。

于是愤而修改代码。让vsftp告诉WindowsExplorer不使用utf-8模式。就GBK吧。

这样好歹客户端看起来正常,在服务端再做个简单转换,就行。麻烦无所谓,至少能恢复过来。

中间也查询了其他解决方案,convmvfs,还有专利呢!

随便试了下没按照预计的方式运行就搁置了。

懒~

vsftpd 源码修改记录,只要过编译,达到Always GBK的目的。

diff1 diff2