gpt4 book ai didi

python - ftplib.cwd 错误 : UnicodeEncodeError: 'latin-1' codec can't encode characters

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:19 35 4
gpt4 key购买 nike

有很多关于'latin-1' codec 的帖子,但是这些答案不能解决我的问题,也许这是我的问题,我只是一个学习Python的菜鸟,有点。当我使用 cwd(dirname) 更改 FTP 站点的目录时,发生了 unicode 错误。请注意,dirname 包含中文字符,显然,这些字符导致了此错误。我按照以往帖子的建议做了一些编码和解码,但是没有用。有人可以给我一些建议,告诉我如何修复此错误并使 cwd 正常工作吗?

部分代码:

file = 'myhongze.jpg'
dirname = './项目成员资料/zgcao/test-python/'
site = '***.***.***.***'
user = ('zhigang',getpass('Input Pwd:'))
ftp = FTP(site)
ftp.login(*user)
ftp.cwd(dirname)# throw exception

一些测试:

u'./项目成员资料/zgcao/test-python/'.encode('utf-8')

输出:

b'./\xe9\xa1\xb9\xe7\x9b\xae\xe6\x88\x90\xe5\x91\x98\xe8\xb5\x84\xe6\x96\x99/zgcao/test-python/'

u'./项目成员资料/zgcao/test-python/'.encode('utf-8').decode('cp1252')

输出:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 10: character maps to <undefined>

u'./项目成员资料/zgcao/test-python/'.encode('utf-8').decode('latin-1')

输出:

'./项ç\x9b®æ\x88\x90å\x91\x98èµ\x84æ\x96\x99/zgcao/test-python/'
Using the result of decode('latin-1'), the cwd can't still work.

请注意,当我使用 retrlines('LIST').

最佳答案

无需编辑 ftplib 源代码。只需在代码中设置 ftp.encoding 属性即可:

ftp.encoding = "UTF-8"
ftp.cwd(dirname)

一个类似的问题,关于 FTP 输出,而不是输入:
List files with UTF-8 characters in the name in Python ftplib

关于python - ftplib.cwd 错误 : UnicodeEncodeError: 'latin-1' codec can't encode characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34902486/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com