Перейти к содержимому
Русский язык для Invision Community 5

Вставка Emoji

Не работают смайлики эмодзи на форуме, при добавлении с телефона и предварительном просмотре все нормально, но при отправке сообщения все пусто и более того, весь текст написанный после них тоже пропадает, может проблема в кодировке? В то же время видел форум на версии 2.х с работающими смайлами <_<

Рекомендованные сообщения

  • Автор

Тест ipbskins с телефона

 

Тест ipbskins с телефона

 

Хм, тоже не работает..

В стандартной кодировки utf8 один символ может кодироватся максимум из 3-х байтов, символ эмодзи занимает четыре байта. Для них нужно переходить на расширеный utf8mb4.

  • Автор

В стандартной кодировки utf8 один символ может кодироватся максимум из 3-х байтов, символ эмодзи занимает четыре байта. Для них нужно переходить на расширеный utf8mb4.

 

Трудно ли на него перейти своими силами? :) И чем это может грозить форуму, глюки и пр. ?

перекодировать базу в utf8mb4

 

 

utf8mb4 - набор символов, используемый для хранения 4 байта в MySQL, внедрён в 2010 году начиная с версии 5.5.3. Главное отличие utf8mb4 от utf8 в том, что utf8mb4 задействует более полные возможности кодировки UTF8, позволяя поддерживать все языки и специальные символы, не поддерживающие utf8 (например японский язык или смайлики из ios - emoji).

 

Однако, как можно догадаться, если utf8mb4 использует для хранения 1 символа 4 байта, то база данных может увеличиться в размере, если сравнивать с точно такой же базой данных в utf8. В наше время немного увеличенный размер базы данных не является существенно проблему, по этому, если вы стоите перед выбором использовать utf8 или utf8mb4 набор символов - используйте utf8mb4.

Будет грозить проблемами с индексами. Если тип таблиц myisam - максимальный размер индекса в нем составляет 1000 байт, поэтому при переходе на utf8mb4 индексы которые имеют размер в 255 символов нужно заменить на 250 чтобы уместится в 1000 байт. Если тип таблиц innodb, нужно увеличить максимальный размер индекса до 1024, по умолчанию он составляет 767 байт.

 

Prefix support and lengths of prefixes (where supported) are storage engine dependent. For example, a prefix can be up to 767 bytes long for InnoDB tables or 3072 bytes if the innodb_large_prefix option is enabled. For MyISAM tables, the prefix limit is 1000 bytes.

  • Автор

Спасибо, @siv1987, да не хочется из-за этого что-то сломать :) В 4 версии я тоже так понимаю Эмодзи не вставишь с телефона? Интересно, почему не переделывают если пишут, что размер БД не сильно увеличится? Кстати, возможно это как то связано с пустыми сообщениями - http://ipbskins.ru/forum/topic14085.html

Интересно, почему не переделывают если пишут, что размер БД не сильно увеличится?

Потому что она не является стандартной кодировкой и ее поддержка появилась в mysql 5.5.3. Кто хочет перейти на другие кодировки пусть себе переделывают как хотят.

  • Автор

Понял, лучше не стоит менять :D Кстати, я что-то не подумав написал, в 4 версии это и не нужно особо, там доступен редактор.

  • Автор

Вот и на американском форуме не рекомендуют менять кодировку.

 

10894577m.png

  • 3 года спустя...
  • Автор

Возможно ли сделать, чтобы не пропадал текст после эмоджи? Интересное наблюдение: при отправке быстрого ответа не отображаются только смайлы эмоджи слова не пропадают, при публикации через расширенный редактор пропадают слова после эмоджи :( В мобильной версии везде (даже в быстром ответе) после эмоджи пропадают слова, думаю это связано с Аяксом.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.