Директорияи мақолаҳо
- 1 Чаро ифодаи эмодзие, ки ба базаи маълумот ворид шудааст, аломати аломати савол мешавад?
- 2 Мушкилоте, ки ифодаи эмодзи ба пойгоҳи додаҳо аломати аломати савол мегардад, чӣ гуна бояд ҳал карда шавад?
- 3 Ҳалли мушкилоти аломати Emoji MySQL
- 4 Маҷмӯи аломатҳои пойгоҳи додаҳоро ба utf8mb4 чӣ гуна тағир додан мумкин аст?
Агар ифодаи Emoji дар рамзгузории utf8 нигоҳ дошта шавадпойгоҳи додаҳои MySQLё MariaDB, онро намоиш додан мумкин нест.
Чаро ифодаи эмодзие, ки ба базаи маълумот ворид шудааст, аломати аломати савол мешавад?
Азбаски ифодаҳои эмодзи ҳарфҳои 4-байтӣ мебошанд ва маҷмӯи аломатҳои utf8 танҳо 1-3 байт аломатҳоро дастгирӣ мекунад, ифодаҳои эмодзиро дар пойгоҳи додаҳо навиштан мумкин нест.
Мушкилоте, ки ифодаи эмодзи ба пойгоҳи додаҳо аломати аломати савол мегардад, чӣ гуна бояд ҳал карда шавад?
2 ҳалли вуҷуд дорад:
- Матнро дастӣ ворид кунед ва аломатҳои чор-байтиро бо аломатҳои фармоишӣ иваз кунед.
- тағир додан MySQL Маҷмӯи аломатҳои пойгоҳи додаҳо, тағир додани маҷмӯи аломатҳои пойгоҳи додаҳо аз utf8 ба utf8mb4, дастгирӣ кардани аломатҳои 1-4 байт.
Дар асл, усули якум кори аз ҳад зиёд аст ва тавсия дода намешавад.
Тавсия дода мешавад, ки ҳалли дуюмро истифода баред, маҷмӯи аломатҳои MySQL-ро тағир диҳед.
Аз версияи MySQL 5.5.3 сар карда, базаи маълумот метавонад маҷмӯи аломатҳои utf4mb8-ро аз 4 байт дастгирӣ кунад ва аломат метавонад то 4 байт дошта бошад, аз ин рӯ он метавонад маҷмӯи аломатҳои бештарро дастгирӣ кунад ва инчунин ифодаҳои эмодзиро нигоҳ дорад.
- Пас аз MySQL 5.5.3, шумо метавонед асосан ба маҷмӯи аломатҳои utf8mb4 навсозӣ кунед.
- Дар айни замон, utf8mb4 бо маҷмӯи аломатҳои utf8 мувофиқ аст.
- Рамзгузорӣ, ҷойгиршавӣ ва нигоҳдории аломатҳои utf8 дар utf8mb4 мебошанд.
- Ҳамон маҷмӯи аломатҳои utf8, ҳеҷ осебе ба маълумоти мавҷуда.
Аз сабабиphpMyAdminБарои ҷадвалҳои навтаъсисшуда дар пойгоҳи додаҳои навтаъсис, рамзгузории пешфарз аломатҳо ин аст:Latin1
- Ин рамзгузорӣ наметавонад ифодаҳои чинӣ ва эмодзиро ворид кунад;
- Шумо бояд рамзгузории маҷмӯи аломатҳои маҷмӯи аломатҳои пойгоҳи додаҳо ва ҷадвалро ба utf8mb4 тағир диҳед;
- Сипас, MySQL-ро аз нав оғоз кунед, шумо метавонед ифодаҳои чинӣ ва эмодзиро ворид кунед.
Ҳалли мушкилоти аломати Emoji MySQL
1 январ:Тағир додани файли конфигуратсияи MySQL my.cnf
- (Сервери Windows my.ini аст,LinuxСервер my.cnf аст)
- файли my.cnf, одатан дар
/etc/mysql/my.cnfҶойгиршавӣ. - Панели идоракунии CWPФайли my.cnf, дар
/etc/my.cnfҶойгиршавӣ.
Пас аз пайдо кардани он, лутфан мундариҷаи зеринро дар се қисми зерин илова кунед ▼
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
2 январ:Пойгоҳи MySQL-ро аз нав оғоз кунед
service mysqld restart
Қадами 3: Маҷмӯи аломатҳоро бори дигар санҷед ва дар сатри фармони SQL ▼ ворид кунед
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Санҷед, ки оё ▼ зерин аст

Фармони зерини SQL-ро ворид кунед▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Тафтиш кунед, ки оё он чунин аст▼
+--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+
Пас аз сохтани пойгоҳи нав дар phpMyAdmin, шумо боядДидани коди базаи маълумот ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Агар рамзгузории базаи маълумот набошадutf8mb4, шумо бояд аломати пойгоҳи додаҳоро ба он тағир диҳедutf8mb4 .
Маҷмӯи аломатҳои пойгоҳи додаҳоро ба utf8mb4 чӣ гуна тағир додан мумкин аст?
Қадами 1: Номи ҷории пойгоҳи додаҳоро дар phpMyAdmin клик кунед ва сипас SQL-ро клик кунед.
Қадами 2: Барои тағир додани аломати пойгоҳи додаҳо фармони зеринро ворид кунедutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
3 январ:Пойгоҳи MySQL-ро аз нав оғоз кунед
service mysqld restart
- Ана тамом.
Инҳоянд чанд намунаи фармонҳои SQL:
Маҷмӯи аломатҳои пешфарз ва ҳамаи сутунҳои аломатҳои ҷадвалро ба маҷмӯи аломатҳои нав иваз кунед ▼
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Агар шумо танҳо маҷмӯи аломатҳои пешфарзии ҷадвалро тағир диҳед▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Маҷмӯи аломатҳои майдонро тағир диҳед ▼
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- 如:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
Рамзи ҷадвалро дидан ▼
SHOW CREATE TABLE tbl_name;
Намоиши кодҳои саҳро ▼
SHOW FULL COLUMNS FROM tbl_name;
Дидани коди ҷории базаи маълумот ▼
SHOW VARIABLES LIKE 'character_set_%';
- Бастаи драйвери mysql-connector-java танҳо utf5.1.13mb8-ро дар 4+ дастгирӣ мекунад
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) "Чӣ тавр эмодзиро дар MySQL захира кардан мумкин аст? Мушкилоти аломати саволи аломати саволро ба пойгоҳи додаи Emoji ворид кунед", ки барои шумо муфид аст.
Хуш омадед ба мубодилаи истиноди ин мақола:https://www.chenweiliang.com/cwl-26592.html
Барои кушодани ҳилаҳои пинҳонии бештар🔑, хуш омадед ба канали мо дар Telegram ҳамроҳ шавед!
Поделиться ва лайк, агар ба шумо писанд омад! Саҳмияҳо ва лайкҳои шумо ангезаи доимии мо мебошанд!