原因:由于ftplib 中 直接指定死的 latin-1,如图:
解决办法:
新建 FTP 对象后,重新给 encoding 属性赋值即可,代码如下:
def __create_connector(self):
error_msg = "无法连接到Ftp服务器, 请检查您的网络 {}:{} {}/****".format(self.host, self.port, self.username)
try:
log.debug("开始获取 Ftp 连接...")
ftp = FTP()
ftp.encoding = "utf-8"
ftp.connect(host=self.host, port=self.port, timeout=self.timeout)
if self.username is not None:
ftp.login(user=self.username, passwd=self.pwd, acct=self.acct)
except (ConnectionRefusedError, TimeoutError, WindowsError) as e:
log.exception("Ftp 链接失败 {}".format(str(e)))
raise ConnectionRefusedError(error_msg)
except BaseException as e:
log.exception("Ftp 链接失败 {}".format(str(e)))
raise ConnectionRefusedError(error_msg)
else:
log.debug(ftp.welcome)
return ftp