@venera060

Проблема со смайлами в телеграм боте, как решить?

Я использую demojize, чтобы он преобразовал смайлы в текст, но видимо он не работает.
В бота зашел человек со смайликами в имени и бот крашнулся. Кто знает как это исправить?

import telebot
from emoji import demojize

token = 'lalala'
bot = telebot.TeleBot(token)

new_offset = None
while True:

    # приём сообщений
    try:
        updates = bot.get_updates(new_offset)
    except Exception as e:
        print(e)
        continue
    if not updates:
        continue
    for u in updates:

        user_id = u.message.from_user.id
        first_name = demojize(u.message.from_user.first_name)
        last_name = demojize(u.message.from_user.last_name)
        tg_username = u.message.from_user.username
        message = demojize(u.message.text)

5ffdce28c3101729180381.jpeg
  • Вопрос задан
  • 605 просмотров
Решения вопроса 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Для хранения одного эмоджи используется 4 байта (вроде) вместо 2 на символ. Соответственно бот может крашиться либо при переполнении переменной в коде, либо при записи в БД (наиболее вероятно).
Выходы:
1. Разрешить в БД хранение 4х байтовых символов;
2. Использовать вместо эмоджи сочетание символов заменителей
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
lastname есть вообще у человека? Какое?
Там явно не строка, у него имени скорее всего вообще нет, None вместо него
Ответ написан
Ваш ответ на вопрос

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

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