nochangez
@nochangez

Как указать кодировку при возвращении ответа с сайта?

Недавно начал изучать телеграм ботов на python, пока не все тонкости знаю, поэтому возникла ошибка кодировки при возрвращении ответа с сайта (узнаю погоду, обращаясь к сайту ). Возвращается ошибка кодировки:
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.752.0_x64__qbz5n2kfra8p0\lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 54: character maps to

Я так понимаю, это из-за возращаемых сайтом эмодзи (⛅️ ️+12°C ️→6.1m/s)
Вот код обращения к сайту:
def whatWeather(city):
    url = f'http://wttr.in/{city}'

    parameters = {
        'format': 2,
        'M': ''
    }

    try:
        response = requests.get(url, params=parameters)
    except requests.ConnectionError:
        bot.send_message(message.chat.id, '<сетевая ошибка>')        
    if response.status_code == 200:
        serverAnswer = response.text.strip()
        bot.send_message(message.chat.id, f'Погода в городе {city}: {serverAnswer}')
    else:
        bot.send_message(message.chat.id, '<ошибка на серверах погоды>')


Подскажите, как указать кодировку, не жертвуя эмодзи)?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@Zanak
А кодировку своих исходников указываете? Лучше скрипты держать в кодировке utf8, которая является "родной", для 3 ветки питона.
В заголовок ответа сервера с погодой можно попробовать посмотреть, какую кодировку он указывает, и попробовать перекодировать (но сначала попробуйте просто указать кодировку своих скриптов, иногда хватает этого)?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы