使用 Apache Commons Net 检测 FTP 服务器文件名编码

Posted

技术标签:

【中文标题】使用 Apache Commons Net 检测 FTP 服务器文件名编码【英文标题】:Detecting FTP server file name encoding using Apache Commons Net 【发布时间】:2021-10-13 06:01:09 【问题描述】:

有没有一种使用 Apache Commons Net 获取或检测 FTP 服务器文件名编码的简单方法? 为什么 FileZilla 客户端总能获得正确的编码并显示正确的文件名?它是怎么做到的?

【问题讨论】:

【参考方案1】:

无从得知,服务器使用什么编码。

我什至不认为 FileZilla 可以总是显示正确的文件名。 见https://wiki.filezilla-project.org/Character_Encoding

话虽如此,您可以考虑以下几点:

一些FTP客户端(包括FileZilla)在会话开始时向FTP服务器发送OPTS UTF8 ON命令,试图强制服务器使用UTF-8编码。 IIS 或 ProFTPD 服务器对此作出响应。 在检测编码时做一些启发式方法。

【讨论】:

以上是关于使用 Apache Commons Net 检测 FTP 服务器文件名编码的主要内容,如果未能解决你的问题,请参考以下文章

JAVA-使用Commons Net连接FTP

[Java] 使用 Apache的 Commons-net库 实现FTP操作

如何导入 org.apache.commons.net.ftp.FTPClient

org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: S

org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: S

org.apache.commons.net.MalformedServerReplyException: Could not parse response code. Server Reply: S