Деякі незручності з кодуванням windows-1251 змушують замислитися про те, як перевести кодування проекту на іншу, наприклад, UTF-8. З файлами — все простіше, відкриваємо у редакторі (наприклад, Notepad++) файли скриптів, перетворимо їх кодування UTF-8 без BOM, зберігаємо. Однак якщо ваш сайт використовує для зберігання даних бази (найчастіше MySQL), то вам необхідно конвертувати так само кодування бази даних. Виконання даної задачі передбачає різні способи. Тут ми розглянемо, мабуть, найшвидший і простий спосіб. Робити ми це будемо з допомогою використання SQL-запиту.
Запит для конвертації бази:
ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Даний запит конвертує базу в зазначену кодування, доступну для MySQL. Крім цього буде потрібно конвертувати кодування самих таблиць. Можна виробляти конвертацію таблиць окремо кожну, незручність виникає при великій кількості таблиць. На щастя, мучити себе цим рутинним заняттям не доведеться, оскільки це можна зробити за допомогою одного запиту.
Запит для конвертації таблиць бази даних:
SELECT CONCAT( ‘ALTER TABLE `, t.`TABLE_SCHEMA` , “.`, t.`TABLE_NAME` , ” CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;’ ) AS sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = ‘My_DB_for_convert’
ORDER BY 1
LIMIT 0 , 90
Замість My_DB_for_convert вам необхідно вказати ім’я своєї бази даних. Даний запит буде працювати в MySQL, починаючи з версії 5 і вище. У випадку з використанням утиліти phpMyAdmin все простіше простого, залишається тільки скопіювати даний запит і вставити у форму запиту SQL.
Варто звернути увагу на те, що існують подкодировки UTF-8, популярні з них:
utf8_general_ci і utf8_unicode_ci
Швидкість роботи і порядок сортування в цих споріднених кодувань різна, власне це і відрізняє один від одного. utf8_general_ci – працює трохи швидше, тому перевага віддається саме цьому кодуванні. Різниця зрозуміло мізерна, для того щоб помітити це в дійсності на продуктивності бази, однак такі відомості є.
Додав: htmaker, 08.08.2014 р.
(1 голосів, середній: 5,00 з 5)
Завантаження…
Діліться з друзями:
См. також:
Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL
Виправлення помилок у базі MySQL
Рубрика: MySQL
Відновлення пароля root в MySQL
Рубрика: MySQL
Утиліта Mytop для MySQL
Рубрика: Linux, MySQL
Кількість запитів до MySQL в режимі реального часу
Рубрика: MySQL
Як дізнатися час виконання MySQL запиту?
Рубрика: MySQL
Оптимізація MySQL (просто про складному)
Рубрика: MySQL
Повнотекстовий індекс: Full text index
Рубрика: MySQL
Вставлення стовпців: ALTER TABLE ADD
Рубрика: MySQL
Коментарі
13.01.2015 в 10:26
Саме geneTal_ci швидше канешн ))
Відповісти
13.01.2015 в 11:02
помилка), виправив)
Відповісти
27.10.2015 у 16:54
Автору респект ну просто величезний, пів дня витратив що б зрозуміти чому база utf-8 у запиті ?????????? Виявилося база була в latin-1 🙂 Удачі і всякий благ.
Відповісти
27.10.2015 у 16:57
дякую!)
Відповісти
25.04.2016 в 01:10
Так нічого і не вийшло. 🙁
Відповісти
25.04.2016 в 01:54
З першою командою вдалося змінити кодування, але довелося попотіти, вбивати таблиці окремо. Друга команда не спрацювала. 🙂
Відповісти
31.05.2016 в 14:09
ТРИМАЙТЕСЯ ПОДАЛІ ВІД UTF-8!!! ср1251 відмінний вибір. Працює швидко мало місця займає і швидко сортується. Для 2-мовного коду, один з якого російська інший англійський ідеальний варіант! Краще сконвертируйте навпаки…
Відповісти
25.09.2017 в 15:35
Шановний ! Тоді переходьте на KOI8-R це ваще вогонь !!!
Ну а якщо Ви не доросли до UTF-8 тоді не показуйте навколишнім свою глибоку некомпетентність.
Нас можуть читати діти і вони можуть Вам повірити, а хто потім їх лікувати психіку буде ?
То-То й воно…
Відповісти