如何解决UnicodeEncodeError: 'ascii' 编解码器无法对位置 37 中的字符 '\u201c' 进行编码:序号不在范围内 (128)
我只是从文件中读取一些引号并使用 python 将它们发送到我的电子邮件中,但我经常面临这个问题(UnicodeEncodeError: 'ascii' codec can't encode character '\u201c' in position 37: ordinal not范围内(128))错误我该如何解决。
这是代码
Now = dt.datetime.Now()
weekdays = Now.weekday()
if weekdays == 5:
with open("quotes.txt","r",encoding="utf8") as quote_file:
all_quotes = quote_file.readlines()
quote = random.choice(all_quotes)
print(quote)
with smtplib.SMTP("smtp.mail.yahoo.com") as connection:
connection.starttls()
connection.login(user=my_email,password=my_password)
connection.sendmail(from_addr=my_email,to_addrs=my_email,msg=f"Subject:Monday Motivational Quote\n\n{quote}")
提前致谢。
解决方法
我相信您正在学习 Angela Yu 的课程。使此代码起作用的唯一方法是从 ""
文件中删除 "quotes.txt"
和特殊字符。
您可以尝试将其从第一句(或行)中删除,然后将 "quote"
分配给 all_quotes[0]
。所以这部分代码看起来像这样:
with open("quotes.txt") as quote_file:
all_quotes = quote_file.readlines()
quote = all_quotes[0]
从每个句子中删除特殊字符后,它也可以与 random.choice
一起使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。