UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xe2 в позиции 1023: неожиданный конец данных - PullRequest
0 голосов
/ 30 октября 2018

По сути, я создал бот IRC Twitch на Python, который пока что не делает ничего, кроме присоединения к каналу. Некоторое время цикл пинг-понга работает правильно, но затем он останавливается из-за ошибки в заголовке. Что я сделал не так? Заранее спасибо.

import re
import socket

HOST = "irc.twitch.tv"
PORT = 6667
NICK = "asdsad"
PASS = "oauth:asdasdasdasd"
channel = "#coolperson"

def send_message(sock, msg):
    sock.send("PRIVMSG #{} {}".format(channel, msg))

s = socket.socket()
s.connect((HOST, PORT))
s.send("PASS {}\r\n".format(PASS).encode("utf-8"))
s.send("NICK {}\r\n".format(NICK).encode("utf-8"))
s.send("JOIN {}\r\n".format(channel).encode("utf-8"))

while True:
    response = s.recv(1024).decode("utf-8")
    if response == "PING :tmi.twitch.tv\r\n":
        s.send("PONG :tmi.twitch.tv\r\n".encode("utf-8"))
        print("answered the call")

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете пропустить эту ошибку. Вместо следующей части:

response = s.recv(1024).decode("utf-8")

Используйте это:

response = s.recv(1024).decode('utf-8', 'ignore')
...