Форум русской поддержки Joomla!® CMS
06.12.2016, 20:01:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

UTF-8 Multibyte

 (Прочитано 340 раз)
0 Пользователей и 1 Гость смотрят эту тему.
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« : 31.07.2016, 18:23:31 »

Здравствуйте,
В БД вижу уведомление "The Joomla! Core database tables have not been converted yet to UTF-8 Multibyte (utf8mb4)." J3.6. Прочитал, что это еще в 3.5 должно было отконвертироваться, но у меня это было пропущено из-за старого PHP. Для чего это вообще было сделано? База большая, через админку навряд ли получится отконвертировать, можно как-то еще это сделать? Сколько еще можно жить без конвертирования БД?
Спасибо.
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #1 : 31.07.2016, 18:46:18 »

Здесь php не играет роли. Кодировка utf8mb4 введена в MySQL начиная с версии 5.5, если я не ошибаюсь. Следовательно, нужно обновить сервер MySQL/MariaDB. Затем воспользоваться функцией обновления текущей версии, которая введена в Joomla начиная с версии 3.6.
Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #2 : 31.07.2016, 18:50:03 »

А, точно, имел ввиду MySQL, ее тоже обновил Azn
"Затем воспользоваться функцией обновления текущей версии" - а где эта функция и как она работает? И это же с БД связано, там можно же просто нажать "пофиксить БД", а эта функция чем может дополнить?
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #3 : 31.07.2016, 18:56:15 »

Компоненты -> Обновление Joomla! -> очистить кэш -> reinstall Joomla!

Может, можно и пофиксить. Расскажете потом - тоже интересен этот вопрос.
Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #4 : 31.07.2016, 19:02:16 »

Ну, я подожду пока, поэтому отвечу не скоро Azn А то эти обновления... Работает же. Вопросы остались:
"Для чего это вообще было сделано? База большая, через админку навряд ли получится отконвертировать, можно как-то еще это сделать? Сколько еще можно жить без конвертирования БД?"
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #5 : 31.07.2016, 19:48:11 »

1) Для чего? Это прогресс, который не остановить:
Цитировать
utf8mb4 - набор символов, используемый для хранения 4 байта в MySQL, внедрён в 2010 году начиная с версии 5.5.3. Главное отличие utf8mb4 от utf8 в том, что utf8mb4 задействует более полные возможности кодировки UTF8, позволяя поддерживать все языки и специальные символы, не поддерживающие utf8 (например японский язык, музыкальные и математические знаки, смайлики из ios - emoji).
2) Сколько можно жить с обычным UTF8? Да сколько угодно. Смотря что за цели. Некоторые таблицы вообще в ASCII можно сделать для оптимизации БД и сокращения её размера. Но все зависит от... It depends, как говорят.

А какая у вас версия ядра?
Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #6 : 31.07.2016, 19:56:23 »

"не поддерживающие utf8, например японский язык" Ну, японский язык точно поддерживается, хе хе Azn
Линукс? ядро 4.6.3
Цель - чтобы Joomla работала, без конвертации же работает всё, причем с кучей разных редких символов...
Один вопрос остался Azn
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #7 : 31.07.2016, 20:01:10 »

Я имел в виду ядро CMS.

3) Конвертация:
Код:
ALTER DATABASE/TABLE база/или-таблица CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #8 : 31.07.2016, 20:04:09 »

Я имел в виду ядро CMS.
У нее ядро есть? J3.6 разве не достаточно, что там за ядро такое ядрёное?
Хорошо, спасибо. Может на следующих выходных рискну Azn
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #9 : 31.07.2016, 20:16:22 »

Есть ядро, есть расширения. Пожалуйста :]
Записан
SDKiller
Dev Team
******

Репутация: +325/-5
Offline Offline

Пол: Мужской
Сообщений: 2749


...ergo sum


« Ответ #10 : 31.07.2016, 23:43:03 »

Цитировать
Для чего это вообще было сделано?

ХЗ. Многое что было сделано в J за последние года 3-4 вызывает такие вопросы
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Online Online

Пол: Мужской
Сообщений: 1452


« Ответ #11 : 01.08.2016, 00:01:16 »

Не только в Joomla! В WP тоже utf8mb4 уже давно используется. Вещь хорошая, не помешает: можно хранить математические формулы и ноты, а также символы китайского, корейского и японского алфавитов, что немаловажно для интернациональной CMS, ведь общий процент юзеров из этих стран достаточно велик. Однако вещь все же специфическая: лишний байт может увеличить объём таблицы на 25% (ключи и все остальное). В особенных случаях, если жмут размеры, то можно использовать другую кодировку, хотя для ординарных целей разница будет малозаметной.
« Последнее редактирование: 01.08.2016, 00:48:51 от Филипп Сорокин » Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #12 : 01.08.2016, 08:00:40 »

символы китайского, корейского и японского алфавитов
Это всё работает и в обычной utf-8! Про формулы и ноты не скажу...
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8711


любит наш народ всякое гавно...


« Ответ #13 : 01.08.2016, 14:09:32 »

Смайлики! Смайлики правять миром кодировкой!
 Smiley Wink Grin Shocked
Записан
creative3d
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 108



« Ответ #14 : 04.08.2016, 11:15:08 »

Поковырялся в Google.
Код
ALTER DATABASE/TABLE база/или-таблица CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Это примерно 1% из того, что нужно сделать...
http://dchua.com/2014/08/15/migrating-from-utf8-to-utf8mb4-in-mysql/ - вот здесь написано подробно, еще после этого надо
Код
$ mysqlcheck -u root -p --auto-repair --optimize --all-databases
Но это сильно сложно для меня, пока с хостером пообщаюсь на эту тему, наверное, будет проще лимиты исполнения скрипта убрать, чтобы из админки пофиксить базу...

Для чего это сделали? Чтобы без проблем можно было вставлять смайлик какашки 💩
На самом деле, это как-то связано с уязвимостью удаленного исполнения кода.
Еще в одной статье написано, что обычный utf-8 позволяет хранить 5.88% возможных кодов. Если какой-то символ при записи невозможно сохранить, то он просто обрежется, и ищи его потом...
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet