Передать символ # через telegram API (python)
Пытаюсь отправить через тг бота сообщение содержащее "#", но отправляется только текст до этого символа
mes = 'startText#endText'
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={chatId}&text={mes}'
requests.get(url)
Отправляет только startText
Ответы (1 шт):
Автор решения: Ellenord
→ Ссылка
Всё дело в специфике кодирования параметров в URL, а именно: тебе нужно экранировать символ # следующим образом:
Преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в UTF-8 в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении с предшествующим знаком процента (%)
Короче говоря, вот так: mes = 'startText%23endText'
mes = 'startText%23endText'
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={chatId}&text={mes}'
requests.get(url)