使用Python将CP1252文本文件转换为Ascii以进行电子邮件导出

问题描述 投票:0回答:1

我不知所措。我花了好几天试图找到问题。 我已经废弃了几个网站并将输出合并为一个文本文件。当我尝试将该文件放入SMTPLib电子邮件链时,我收到编码错误。

", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 156: invalid start byte

这是我的代码。从我所知道的文本文件中没有任何特殊内容:

import requests, os, smtplib, codecs
from bs4 import BeautifulSoup
from email.mime.text import MIMEText


homeworkResults = open('homeworkResults.txt','r', encoding= 'utf-8')
homeworkContent = homeworkResults.read()
#homeworkContent.encode()
homeworkResults.close()

print("attempting email...")

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('[email protected]','Password')
smtpObj.sendmail('[email protected]' , '[email protected]','Subject: Kids Homework Update\n\n ' + homeworkContent) 
smtpObj.quit()
python non-ascii-characters
1个回答
1
投票

它在codes.函数之前添加open后工作。

import requests, os, smtplib, codecs
from bs4 import BeautifulSoup
from email.mime.text import MIMEText


homeworkResults = codecs.open('homeworkResults.txt','r', encoding= 'utf-8', errors='ignore')
homeworkContent = homeworkResults.read()
#homeworkContent.encode()
homeworkResults.close()

print("attempting email...")

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login('[email protected]','Password')
smtpObj.sendmail('[email protected]' , '[email protected]','Subject: Kids Homework Update\n\n ' + homeworkContent) 
smtpObj.quit()
© www.soinside.com 2019 - 2024. All rights reserved.