Телеграм бот не отправляет знак "+" в сообщении

Столкнулся с тем, что знак + почему-то не отправляется от телеграм бота к пользователю. Кто-то сталкивался с подобным, как это можно поправить?

body = f"Клиент оставил только номер: +++++++{payload['phone']}"
url = f"https://api.telegram.org/bot{config.TG_TOKEN}/sendMessage?chat_id={chat_id}&text={body}"
requests.get(url)

Результат:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Trema28

https://en.wikipedia.org/wiki/Percent-encoding#Types_of_URI_characters

Знак + зарезервирован в URL кодировке. Вам надо его закодировать.

body = f"Клиент оставил только номер: +++++++{payload['phone']}"
# body = body.replace('+', '%2B')
body = requests.utils.quote(body)
url = f"https://api.telegram.org/bot{config.TG_TOKEN}/sendMessage?chat_id={chat_id}&text={body}"
requests.get(url)
→ Ссылка