MySQL и другие движки баз данных устанавливают кодировку, используемую для текста, на нескольких уровнях: сервер, база данных, таблица и столбец.Обычно значения по умолчанию применяются сверху вниз, от сервера к базе данных, от базы данных к таблице и т. Д., Но они могут быть настроены в любой точке в соответствии с требованиями.Иногда это происходит непреднамеренно и может вызвать проблемы.
Один из способов узнать, какая кодировка активна в настоящее время, - это использовать клиент типа Sequel Pro , который предоставит вам эту информацию, или исследовать использованиеинструмент командной строки mysql
:
SHOW CREATE DATABASE example;
Вы получите ответ, который содержит что-то вроде этого:
CREATE DATABASE `example` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */
В данном случае это таблица UTF-8 с UTF-8 UNICODEсверка.Кодировка определяет, как хранятся данные, а параметры сортировки определяют, как обрабатывать сортировку и преобразование регистра.
При дальнейшем исследовании вы можете изучить таблицу и столбцы:
SHOW CREATE TABLE example;
Это дает гораздо большеподробно, что-то вроде этого:
CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `index_example_on_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
В этом случае для самой таблицы по умолчанию используется UTF-8, а столбец электронной почты также помечается.У вас может быть другой столбец.
Если вам нужно изменить кодировку или параметры сортировки, вы можете использовать оператор ALTER TABLE
для этого.