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 ветки питона.
В заголовок ответа сервера с погодой можно попробовать посмотреть, какую кодировку он указывает, и попробовать перекодировать (но сначала попробуйте просто указать кодировку своих скриптов, иногда хватает этого)?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы