我参照了很多网上内容,有以下三种解决方法,前两种类似,是用unicode:
我们之前在Python2.x的时候,用requests上传文件是正常存储中文名字,但是使用Python3之后,文件名就变得不正常了。因为Java服务端接口不支持这种方式,于是只能修改Python脚本。
因为Python3使用requests的时候,会调用urllib3库—>fields.py的新处理逻辑
当文件名是中文的时候, value = email.utils.encode_rfc2231(value, 'utf-8') 就会转换格式为:
filename* 这种格式的键值对。
当然改源码文件是最快的,但是这样不利于移植。
还是修改下requests请求吧。
针对文件名是中文的问题,不同的操作系统处理是不一样的:
Windows系统,在文件头加:# -*- coding: cp936 -*-
Linux系统,在文件头加:# -*- coding: utf-8 -*-
Python开发比较头疼的一个问题是,中文,所以尽量避免出现中文的情况。