FTP文件名编码

2024-06-28 11:30:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 命令服务器txt编码文件名unicodetwistedftp
2条回答

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

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

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

有两种可能性:

  • 无法识别unicode FTP。在本例中,您所访问的服务器似乎正在发送拉丁语-1编码的字节。所以当你收到字节时,你需要用这种编码来解码。在
  • 有一个an RFC将FTP更新为支持UTF-8。检查FEAT命令的结果,看看UTF8是否存在(但可能没有,因为示例字节不是有效的UTF-8)。如果是,则使用UTF-8解码字节。在

Twisted的FTP客户机不会做任何与unicode相关的操作,因为它只是实现了基本的FTP-RFC。在

相关问题 更多 >