знатоки питона, спасайте. есть скрипт, который позволяет после билда игрового мода сразу загружать его на sftp и рестартить сервер. вот на рестарте и возникает одна трудность. дело в том, что я пытаюсь вывести в терминал сразу лог сервера в лайв-режиме. вот только на каком-то моменте лог прекращается по причине: 'utf-8' codec can't decode byte 0xcf in position 26: invalid continuation byte (то бишь на русских символах начинается пиздец). Spoiler файл-то загружается, сервер рестартится и даже работает дальше, но вот без ***** у меня начинается горячка. я изъебал уже всю голову себе и перехуячил всех гпт-роботов, но никак не могу понять, как мне декодить блядскую строку. def fix_encoding(line): try: line.encode('utf-8').decode('utf-8') return line except: result = chardet.detect(line.encode('cp1251')) encoding = result['encoding'] try: return line.encode('windows1251').decode(encoding) except: return line.encode('windows1251').decode('windows1251', errors='ignore') async def run_server_and_logs(ssh): try: async with ssh.create_process("./start", stderr=DEVNULL) as process: async for line in process.stdout: fix_encoding(line) print(f"{line}") async for err_line in process.stderr: print(f"Ошибка: {err_line}") await process.wait() except Exception as e: print(f"Ошибка при запуске сервера: {e}") Python def fix_encoding(line): try: line.encode('utf-8').decode('utf-8') return line except: result = chardet.detect(line.encode('cp1251')) encoding = result['encoding'] try: return line.encode('windows1251').decode(encoding) except: return line.encode('windows1251').decode('windows1251', errors='ignore') async def run_server_and_logs(ssh): try: async with ssh.create_process("./start", stderr=DEVNULL) as process: async for line in process.stdout: fix_encoding(line) print(f"{line}") async for err_line in process.stderr: print(f"Ошибка: {err_line}") await process.wait() except Exception as e: print(f"Ошибка при запуске сервера: {e}")
Дело не в ру символах скорее всего у тебя кодировка другая ты пытаешься декодировать UTF8 а там байты которые не может UTF обработать узнай в какой кодировке поступает инфай
KLINTXXXGOD, в душе не ебу как получить кодировку строки на которой приходит ошибка, потому что на ней приходит ошибка и код не видит что там за строка
что в line хранится, когда передается в fix_encoding(line)? Если допустимо проебать символы русские, то можешь try except поставить на обработку внутри цикла