Имя: Пароль:
IT
Админ
MySQL чем лучше заменить utf8mb4
0 vde69
 
18.12.22
11:13
есть старенький MySQL у него нет поддержки utf8mb4, есть только utf8 и подобные

разница для MySQL
utf8 - максимум 3 байта (так сказать не по стандарту)
utf8mb4 - полноценные 4 байта

надо установить на этот старенький MySql базу созданую как utf8mb4

попробовал

CHARACTER SET utf8 COLLATE utf8_bin

но часть данных (не большая, менее 1%) стала кракозябрами

Кто подскажет более правильное решение?
1 vbus
 
18.12.22
12:48
2 shuhard
 
18.12.22
13:16
(1) ТС-у нужна обратная операция
3 NorthWind
 
18.12.22
15:36
хмм... ну если я верно понял проблему, то часть данных действительно не удастся сохранить, потому что старая версия просто физически не поддерживает требуемый размер символа. Эмотиконы те же - они 4 байта, и в 3 их никак не впихнуть.
4 NorthWind
 
18.12.22
15:37
или я все-таки не прав?
5 vde69
 
18.12.22
16:04
(4) почти прав, 4х байтные символы просто выкидываютя из строки, а вот кракозябры скорее всего от не совпадения кодовых страниц,.
И меня больше напрягают именно кракозябры а не пропуски символов.
6 Волшебник
 
модератор
18.12.22
18:16
(0) Можно заменить на MariaDB 10.1, в ней есть utf8mb4
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший