我在尝试使用请求作为附件发送的文件中使用非 ascii 字符时遇到问题。
_send_output 函数中的 httplib 模块出现异常。看这张图片:
这是我的代码:
response = requests.post(url="https://api.mailgun.net/v2/%s/messages" % utils.config.mailDomain,
auth=("api", utils.config.mailApiKey),
data={
"from" : me,
"to" : recepients,
"subject" : subject,
"html" if html else "text" : message
},
files= [('attachment', open(f)) for f in attachments] if attachments and len(attachments) else []
)
问题在于包含非 ascii 数据(希伯来语)的 files 参数。图像中可以看到的异常是:
UnicodeDecodeError:“ascii”编解码器无法解码位置 673 中的字节 0xd0:序数不在范围内(128)