Open IIIef opened 5 years ago
Какая-то нездоровая вещь. Я правильно понимаю, что строка с огоньками в данном случае - это никнейм? В базе он тоже не записался?
Да, все правильно. Раньше всякие такие ники попадались, но я не придавал этому значение, пока один игрок не обратился, а в комментарии к муту я обычно добавляю лог чата с сервака. В итоге комментарий был наполовину пуст из-за этих символов.
Ну, отчасти это вроде как и баг, но вроде как и фича. Поясню. У MySQL есть две разных кодировки UTF8 (если не учитывать коллации): UTF8 и UTF8MB4. Отличие заключается в том, что первая хранит символы максимум длиною в 2 байта, а вторая - 4 байта.
SourceBans использует UTF8 из-за проблем со стороны сервера: он попросту не понимает UTF8MB4 (поправочка: не понимал до SM 1.10, который пока в разработке). Смайлики как раз используют 4 байта. Не понятно пока, почему MySQL переварил строку, не смотря на такую разницу в размере символов. Обычно он ошибку выплёвывал, что записать не может, а не просто убирал значение колонки насовсем.
Возможно, с реализацией #236 переедем на UTF8MB4. Пока это не представляется возможным.
Хорошо, будем ждать лучших времен)
С сегодняшнего утра в принципе производятся попытки реализовать вышеупомянутую Issue в жизнь. Так что возможно переезд не за горами.
Привет, та-же проблема. Как вариант - можно кодировать символы юникодом, ну или просто их удалять, пока нет альтернативы.
Да, кстати, это работает не только с мутом. Сегодня пытался забанить игрока у которого в нике смайлик, думаю ты понял какой результат ;)
Решил проблему вот таким методом)
Пока все нормально работает.
Если создать мут и ввести комментарии, то информация с символами к примеру вот такими 🔥FluffyCat🔥 не будет сохраняться, а ник игрока будет скрыт в таблице.