Я пробовал несколько вариантов. Как здесь:
Как отправить эмодзи с помощью Telegram Bot API?
телемарафон в телеграмме на питоне как отправлять эмодзи
И каждый вариант кодировки с этой страницы https://www.fileformat.info/info/unicode/char/1f4b5/index.htm
Но мне ничего не помогло.
Я пытался избежать обратной косой черты и не делать этого. Так что я получаю это U0001F609
или это \U0001F609
в сообщении Telegram.
Может кто-нибудь просто показать мне JSON, который я должен отправить, чтобы наконец получить смайлик в сообщении?
Я не думаю, что мой код поможет. Вот данные запроса (метод POST) prnt.sc/4rpoK6TJe7yD Вот результат prnt.sc/J-OunFC1EOAO Вот код: prnt.sc/h2EnL2WBkwsh
Итак, я вижу, что в телеграм нужно отправлять эмодзи как сущность UTF-8 (т.е. 🗂/💵 и т. д.).
Но моя проблема заключалась в том, что текст, который отправляет бот, регулируется из админки сайта и хранится в базе данных. А в таблице я не могу изменить кодировку для корректного хранения таких символов (на выходе получаю ????).
Решение, которое я придумал:
Прямо сейчас я сохраняю HTML-объект в базе данных (т.е. 🔝
/💵
и т.д.) и перед отправкой сообщения вырезаю их из регулярного выражения /&#.*;/mU
и конвертирую в правильную кодировку с помощью mb_convert_encoding($match, 'UTF-8', 'HTML-ENTITIES')
Я не стал описывать все эти моменты в исходном сообщении, потому что сам не до конца понял, почему телеграм не обрабатывает то, что я пытаюсь ему отправить.
Покажите нам код, который вы пробовали.