2011-02-11 61 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。