← Вернуться к списку тем

Непонятная кодировка в first name и last name

Сделал бота викторину @Viktorina_IRCBot народ стал играть. Но у некоторых игроков Ники необычные. Используются какие-то шрифты непонятные. Так вот бот в ответ им пишет их имена нормально, а вот при записи их в бд вместо символов с изменённым шрифтом появляются ?????. Как привести их имена к utf8 не зная изначальной кодировки? 

Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.

  • iMakeBots [2 года назад]

    Скорее всего это эмодзи или спец символы в кодировке utf8 но в большей байтности (4 против 3)

    Меня спасает кодировка у таблиц в бд utf8mb4_general_ci или utf8mb4_unicode_ci

  • Vitaliy Monashenkov [2 года назад → iMakeBots]

    Спасибо, попробую

  • Vitaliy Monashenkov [1 год назад → iMakeBots]

    К сожалению, это не помогло. Новый пользователь опять с ????? 

  • iMakeBots [1 год назад → Vitaliy Monashenkov]

    У вас кодировка utf8mb4 всей вертикали: database, table, column?

  • Vitaliy Monashenkov [1 год назад → iMakeBots]

    Да, и это не помогает. Может быть попробовать utf32? 

  • iMakeBots [1 год назад → Vitaliy Monashenkov]

    С 32 не тестировал

  • iMakeBots [1 год назад → Vitaliy Monashenkov]

    Кодировка файла скрипта какая? Может быть в этом дело?

    Есть еще предположение, что это пользователи с премиум подпиской - в имени используют премиум эмодзи, а они читаются только в телеграме.

    Проверьте флаг у них в объекте User есть is_premium