微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UnicodeEncodeError: 'ascii' 编解码器无法对位置 37 中的字符 '\u201c' 进行编码:序号不在范围内 (128)

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?