python通过ftp上传以中文命名的文件,由于编码而造成不能上传,报错的问题

ftp是常用的文件传输协议,在python中使用ftp传输时一般采用ftplib的包来进行文件传输;在进行文件传输时,当文件名是中文时,一般报错:
UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 5-8: ordinal not in range(256)
这是由于ftplib包中的编码方式一般为latin-1,而latin-1不能对中文名称进行编码,所以导致报错,常见的解决方法有:
1:修改ftplib包源码,即修改ftplib.py这个py文件
将encoding = “latin-1” 修改成encoding =“utf-8”
2:在构建ftp对象的时候重新定义编码格式
如:
ftp = ftplib.FTP()
ftp.connect(host, port)
ftp.login(username, password)
#ftp.encoding=‘GB2312’
ftp.encoding='utf-8

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值