无法使用CP1250 / CP852 / UTF-8编码访问FTP目录

时间:2017-09-09 11:57:27

标签: encoding ftp python-3.6

我正在尝试从以下目录结构中读取一些文件:

/jc/06 Önéletrajzok/Profession/Előszűrés sablonok név szerint

但由于一些奇怪的原因,即使在上层目录中也无法进入。

我已经尝试过使用PHP / Python3.6 / Ruby但没有太多运气。至少在PHP和Python中,我可以至少在/jc/06 Önéletrajzok/Profession部分之前使用CWD()。

这是我的python代码供参考:

from ftplib import FTP
ftp = FTP('hostname')
ftp.login('username','pwd')
ftp.cwd('jc') # Just for demonstration purposes as step by step
ftp.cwd('06 Önéletrajzok')
ftp.cwd('Profession')
print(ftp.nlst()[2]) # Which gives: 'ElÅ\x91szűrés sablonok név szerint

# But when I am trying:
ftp.cwd('ElÅ\x91szűrés sablonok név szerint')
# Or either:
ftp.cwd('Előszűrés sablonok név szerint')
# It gives: 
# UnicodeEncodeError: 'latin-1' codec can't encode character '\u0151' in position 6: ordinal not in range(256)

# So I am trying encoding CP1250 or CP852 (for Hungarian)
dir = 'Előszűrés sablonok név szerint'.encode('cp852') # which gives: b'El\x8bsz\xfbr\x82s sablonok n\x82v szerint'
ftp.cwd(dir.decode('utf-8'))
# and it gives the following error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 2: invalid start byte

所以我开始放弃这个,我不知道如何访问这些文件。目录结构是在Windows笔记本电脑访问Synology文件服务器的情况下创建的。

我已经尝试了ftp.encoding = "utf-8"

有什么想法吗?

0 个答案:

没有答案