Добрый день!
На сайте при тестировании конфигурации, были проблемы с кодировкой, ругался на latin1.
Я исправил ошибку стандартными средствами, как было указано в рекомендации и вроде еще выполнил пару команд (точно не помню, было давно):
Получил запросы на все таблицы
SEL ECT CONCAT('ALT ER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as sqlcode
FR OM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = '`DB_NAME`'
ORDER BY 1
и выполнил для каждой таблицы:
ALT ER TABLE `DB_NAME`.`TABLE_NAME` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
При проверке сайта стало все ок:
Кодировка соединения (check_mysql_connection_charset): Ok
character_set_connection=utf8, collation_connection=utf8_unicode_ci, character_set_results=utf8
Кодировка базы данных (check_mysql_db_charset): Ok
CHARSET=utf8, COLLATION=utf8_unicode_ci
НО! Выползла куча багов при работе со строковыми функциями. Похоже, где то я не до правил) Я заглянул в базу и увидел в кодировках полный бардак:
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database latin1
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
collation_connection utf8mb4_unicode_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Подскажите, как лучше всего исправить и привести базу и сайт к единой кодировке (UTF8\utf8_unicode_ci наверно????) и самое главное что бы базу не загубить)
На сайте при тестировании конфигурации, были проблемы с кодировкой, ругался на latin1.
Я исправил ошибку стандартными средствами, как было указано в рекомендации и вроде еще выполнил пару команд (точно не помню, было давно):
Получил запросы на все таблицы
SEL ECT CONCAT('ALT ER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as sqlcode
FR OM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = '`DB_NAME`'
ORDER BY 1
и выполнил для каждой таблицы:
ALT ER TABLE `DB_NAME`.`TABLE_NAME` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
При проверке сайта стало все ок:
Кодировка соединения (check_mysql_connection_charset): Ok
character_set_connection=utf8, collation_connection=utf8_unicode_ci, character_set_results=utf8
Кодировка базы данных (check_mysql_db_charset): Ok
CHARSET=utf8, COLLATION=utf8_unicode_ci
НО! Выползла куча багов при работе со строковыми функциями. Похоже, где то я не до правил) Я заглянул в базу и увидел в кодировках полный бардак:
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database latin1
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
collation_connection utf8mb4_unicode_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Подскажите, как лучше всего исправить и привести базу и сайт к единой кодировке (UTF8\utf8_unicode_ci наверно????) и самое главное что бы базу не загубить)