Задать вопрос
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 Простой Комментировать
Решения вопроса 1
@Zanak
А кодировку своих исходников указываете? Лучше скрипты держать в кодировке utf8, которая является "родной", для 3 ветки питона.
В заголовок ответа сервера с погодой можно попробовать посмотреть, какую кодировку он указывает, и попробовать перекодировать (но сначала попробуйте просто указать кодировку своих скриптов, иногда хватает этого)?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽