Какую кодировку нужно устанавливать в MySQL

121
27 декабря 2020, 23:40

На сайте http://www.webpupil.ru/view_server.php?id=4 нашел информацию о настройке БД. Там говорится о том, что надо установить кодировку cp1251 вот так:

В раздел [mysqld], после строки port=3306 необходимо добавить следующие строки:

character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
default-character-set=cp1251
character-set-server=cp1251
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

Но я сомневаюсь, что надо установить именно эту кодировку, т.к. слышал, что везде ставится кодировка utf-8.
Вопрос какую кодировку надо выставить: utf-8 или cp1251 или, может быть, еще какую-то? И вообще при установке MySQL надо ли выбирать кодировку cp1251 или надо выбрать что-то другое

Answer 1

Кодировку надо устанавливать utf8mb4.

  • cp1251 - это кодировка, которая устарела еще в прошлом веке.
  • UTF-8 - это название стандарта, который уже много лет используется во всем мире
  • utf8 - это устаревшая реализация этого стандарта в mysql, не поддерживающая кучу символов
  • utf8mb4 - нормальная реализация стандарта

Все эти шаманские заклинания "В раздел [mysqld]" писать нельзя. Код должен быть переносимым. и работать на любом сервере, а не только на своем домашнем компике.

Поэтому кодировку надо задавать при создании таблиц и при соединении с БД.

READ ALSO
Почему singleton плохо, а share из DI контейнеров, которые по сути тоже создают singleton - это хороший паттерн?

Почему singleton плохо, а share из DI контейнеров, которые по сути тоже создают singleton - это хороший паттерн?

Почему singleton плохо, а share из DI контейнеров, которые по сути тоже создают singleton - это хороший паттерн? И В чем отличие?

114
Вопрос по php и wordpress

Вопрос по php и wordpress

Есть ajax - запрос в котором я передаю 2 переменныеОбрабатываю этот запрос в function

138
Как использовать правильно DI-контейнер

Как использовать правильно DI-контейнер

У меня следующая задача:

148
Нюансы при слиянии массивов

Нюансы при слиянии массивов

Подскажите что я не правильно делаю при слиянии массивов ?

118