1. 程式人生 > 實用技巧 >python中報UnicodeDecodeError: 'utf-8' code

python中報UnicodeDecodeError: 'utf-8' code

python中報UnicodeDecodeError: 'utf-8' code

一、執行傳送郵件時出現的錯誤:

此次錯誤,在直譯器3.5中不報,但是在3.7中報錯:原因未知

Traceback (most recent call last):

File "E:/Python_Project/second_Two/cs.py", line 25, in <module>

smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 啟用SSL發信, 埠一般是465

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 1031, in __init__

source_address)

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 261, in __init__

fqdn = socket.getfqdn()

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\socket.py", line 676, in getfqdn

hostname, aliases, ipaddrs = gethostbyaddr(name)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 2: invalid start byte

在本次報錯誤的原因是因為在socket模組中獲取計算機名時出現的無法解碼位元組問題

92347422056.jpeg

解決方法:將計算機名改成英文(右鍵我的電腦——屬性——更改設定——更改)

name=gethostname():這個函式是獲取計算機名字;

_socket這個模組裡的一個方法