'utf-8'编解码器无法解码位置4的字节0xe9:数据意外结束

时间:2018-08-14 13:50:30

标签: python python-3.x utf-8

我是这种语言的新手,在通过python发送电子邮件时遇到了一些麻烦,我的代码如下:

import smtplib
server=smtplib.SMTP("smtp.gmail.com",587)
server.starttls()
server.login('username','password')

message = "hi there"
server.sendmail('username', 'username', message)

server.quit()

我的系统是: 在Win32上使用Python 3.7.0(v3.7.0:1bf9cc5093,Jun 27 2018,04:06:47)[MSC v.1914 32位(Intel)]

我得到的输出是:

Traceback (most recent call last):
File "C:\pythonfiles\testmail - kopia.py", line 6, in <module>
  server=smtplib.SMTP("smtp.gmail.com",587)
File "C:\python\lib\smtplib.py", line 261, in __init__
  fqdn = socket.getfqdn()
File "C:\python\lib\socket.py", line 676, in getfqdn
  hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in 
position 4: unexpected end of data

我的计算机名由字母é组成,我可以做些什么吗?我已经通过记事本将该文件保存到UTF-8。

有什么想法吗?

干杯安德烈

1 个答案:

答案 0 :(得分:0)

utf-8可能不是正确的编码。 解析包括法文的文件等时,这是当前的问题(我想是您提到的情况)

我通常通过以下方式解决此问题:

mystring = 'gdjéàếè'
new_string = mystring.encode('iso-8859-1')

否则,您可能需要检查一下:Custom Google Cloud SQL