簡體   English   中英

'utf-8'編解碼器無法解碼位置1的字節0xf4:無效的連續字節

[英]'utf-8' codec can't decode byte 0xf4 in position 1: invalid continuation byte

由於python腳本,我嘗試發送電子郵件,但無法正常工作。 我嘗試了不同的郵件地址(Hotmail和Gmail),不同的端口等。不管是什么,即使我只寫了兩行代碼,我的地址也始終相同。 我也嘗試了Latin-1或utf-8編碼...沒什么改變!

我正在Windows10上使用anaconda和python 3.6。

代碼:

import smtplib
serveur = smtplib.SMTP('smtp.gmail.com',587)

和錯誤:

runfile('C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py', wdir='C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts')
Traceback (most recent call last):

File "<ipython-input-1-a733f02e7871>", line 1, in <module>
runfile('C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py', wdir='C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts')

File "D:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile 
execfile(filename, namespace)

File "D:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile 
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py", line 9, in <module>
serveur = smtplib.SMTP('smtp.gmail.com',587)

File "D:\Anaconda\lib\smtplib.py", line 261, in __init__
fqdn = socket.getfqdn()

File "D:\Anaconda\lib\socket.py", line 673, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 1: invalid continuation byte

編輯:

到目前為止,我嘗試了其他事情,但是沒有任何效果:

沒有我的代碼開始像:

# -*- coding:Latin-1 -*-
import smtplib
import socket
hostname, aliases, ipaddrs = socket.gethostbyaddr('smtp.gmail.com')
socket.getfqdn()
socket.gethostname()
serveur = smtplib.SMTP("smtp.gmail.com",587)
serveur.ehlo()

我也ping smtp.gmail.com,這是結果,看起來似乎都井井有條...但是它仍然無法正常工作(我還檢查了文件名中是否沒有任何特定的字符)

Envoi d’une requête 'ping' sur gmail-smtp-msa.l.google.com [74.125.206.108] avec 32 octets de données :
Réponse de 74.125.206.108 : octets=32 temps=8 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=7 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=7 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=6 ms TTL=47

Statistiques Ping pour 74.125.206.108:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 6ms, Maximum = 8ms, Moyenne = 7ms

最后,我認為錯誤不是來自消息,因為到目前為止,這只是“我的消息” ...

編輯2:

我可能已經找到了問題,但我不知道如何解決!

如果我直接寫這些行:

In[59]: import socket

In[60]: socket.gethostname()
Out[60]: 'Côme'

我可以看到主機名有問題...但是我不知道如何更改它。

所以問題不在於腳本,而是計算機本身的名稱!

如果您遇到相同的問題,請更改計算機的名稱,它應該可以工作!

謝謝你的幫助....

采用:

serveur = smtplib.SMTP('smtp.gmail.com:587')

您是否嘗試過serveur = smtplib.SMTP('smtp.gmail.com'.encode('utf8'),587)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM