如何在multipart/form-data POST请求中使用UTF-8字符串作为文件名(Python 3.5)

LBV*_*V儒呢 5 python utf-8

我正在尝试使用请求发送名为"pestaña2"的文件.

files = { 'f': ('pestaña2.png', open('/Users . . . Definition/' + HeadWrd + '.png', 'rb'), 'image/png')}
Run Code Online (Sandbox Code Playgroud)

但请求无法上传文件,我得到了响应

message=You must pass a file in as f.
Run Code Online (Sandbox Code Playgroud)

文件名出现在请求中,如下所示:

Content-Disposition: form-data; name="f"; filename*=utf-8''pesta%C3%B1a2.png
Run Code Online (Sandbox Code Playgroud)

如果我从文件名中删除"ñ"字符,问题就会消失,所以我知道问题出在特殊字符上.如果我手动上传图像没有问题,文件名在请求中显示为"filename =pestaña2.png."是否有某种方法可以确保特殊字符正确传递?