Загрузка...

Помощь с декодом str

Тема в разделе Python создана пользователем fhmscmdf 11 мар 2025. 113 просмотров

  1. fhmscmdf
    fhmscmdf Автор темы 11 мар 2025 8 21 мар 2021
    знатоки питона, спасайте.
    есть скрипт, который позволяет после билда игрового мода сразу загружать его на sftp и рестартить сервер. вот на рестарте и возникает одна трудность. дело в том, что я пытаюсь вывести в терминал сразу лог сервера в лайв-режиме. вот только на каком-то моменте лог прекращается по причине: 'utf-8' codec can't decode byte 0xcf in position 26: invalid continuation byte (то бишь на русских символах начинается пиздец).
    [IMG]
    файл-то загружается, сервер рестартится и даже работает дальше, но вот без ***** у меня начинается горячка. я изъебал уже всю голову себе и перехуячил всех гпт-роботов, но никак не могу понять, как мне декодить блядскую строку.
    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}")
     
  2. KLINTXXXGOD
    KLINTXXXGOD 11 мар 2025 </> Разработка - https://lolz.live/threads/7695405 761 10 фев 2023
    Дело не в ру символах скорее всего у тебя кодировка другая ты пытаешься декодировать UTF8 а там байты которые не может UTF обработать узнай в какой кодировке поступает инфай
     
    1. fhmscmdf Автор темы
      KLINTXXXGOD, в душе не ебу как получить кодировку строки на которой приходит ошибка, потому что на ней приходит ошибка и код не видит что там за строка :finger_down:
    2. greshnikov
      fhmscmdf, попробуй chardet для определения кодировки
    3. fhmscmdf Автор темы
  3. EsliHochesh
    EsliHochesh 12 мар 2025 Заблокирован(а) 206 4 авг 2023
    что в line хранится, когда передается в fix_encoding(line)? Если допустимо проебать символы русские, то можешь try except поставить на обработку внутри цикла
     
Top
Загрузка...