起因是学校的古典音乐ftp用的是BSD自带的一个ftp,可能是比较老的原因,所以不能识别OPT UTF8 ON的命令,但是已经把UTF8的FEATURE返回给lftp客户端了,但是因为lftp在对服务器进行编码识别的时候在没有获得OPT UTF8 ON的正确回复是采用的是本地设置charset,结果每次都要手动把字符集改成UTF8比较麻烦,昨天ftp的架设者提到这个问题,并用ngrep演示了监听ftp对话状态的办法,回去后就研究了一下lftp的代码,找到了UTF8特性对话部分的代码,添加了一个if就搞定了
又写了个ebuild,发现现在很喜欢写ebuild的说,因为实在是太方便了![]()
“起因是学校的古典音乐ftp用的是BSD自带的一个ftp,可能是比较老的原因,所以不能识别OPT UTF8 ON的命令,但是已经把UTF8的FEATURE返回给lftp客户端了。”
RFC2640有约定,倒底使用不使用UTF-8是服务器端决定并且告诉ftp客户端的,不是客户端决定用什么编码再告诉服务器的。实际上绝大多数客户端索取内容的协议都是规定服务器决定编码,客户端只有接受的份。ftp客户端发OPT UTF8 ON是不合适的,不合IETF要求。一个良好的ftp客户端软件在FEAT中收到UTF8,就应该照办不要再多问了……
(你的patch被lftp的人接受没有? 建议patch如果写作RFC2640.patch会容易引起项目组注意。)