【问题标题】:FTP filename encodingFTP 文件名编码
【发布时间】:2011-02-11 08:12:39
【问题描述】:

嗨 我使用扭曲库连接到 FTP 服务器,但文件名编码有问题。 我收到 'Illusion-N\xf3z.txt' 所以它不是 unicode。是否有任何 FTP 命令强制执行特定编码? 提前致谢! MK

【问题讨论】:

    标签: python encoding ftp twisted


    【解决方案1】:

    有两种可能:

    • FTP 不支持 Unicode。在此示例中,您正在与之交谈的服务器似乎正在发送 Latin-1 编码字节。因此,您需要在收到字节时使用该编码对字节进行解码。
    • an RFC 将 FTP 更新为支持 UTF-8。检查FEAT 命令的结果以查看UTF8 是否存在(但可能不存在,因为示例字节不是有效的UTF-8)。如果是,请使用 UTF-8 解码字节。

    Twisted 的 FTP 客户端不会为它做任何与 unicode 相关的事情,因为它只是实现了基本的 FTP RFC。

    【讨论】:

      【解决方案2】:

      FTP 忽略编码;只要文件名不包含'\0'(空字符)和'/'(斜线)分隔目录,它就很乐意接受任何内容。

      对文件名进行自己的解码和编码。您的示例中使用的编码很可能是“cp1252”,即“Windows Western”或类似的编码。

      在您的情况下,当您收到“Illusion-N\xf3z.txt”时,请通过 'Illusion-N\xf3z.txt'.decode('cp1252') 将其转换为 Unicode。

      【讨论】:

        猜你喜欢
        • 2021-05-13
        • 2011-05-16
        • 1970-01-01
        • 2021-10-13
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多