2011-02-11 57 views
1

嗨 我使用扭曲的库连接到FTP服务器,但我有文件名编码的问题。 我收到'Illusion-N \ xf3z.txt',所以它不是unicode。有没有任何FTP命令强制特定的编码? 在此先感谢! MKFTP文件名编码

回答

4

有两种可能性:

  • 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西方”或类似的东西。

在你的情况,当你收到 '幻觉-N \ xf3z.txt',通过'Illusion-N\xf3z.txt'.decode('cp1252')其转换为Unicode。