Məqalələr kataloqu
- 1 Nə üçün verilənlər bazasına daxil edilmiş Emoji ifadəsi sual işarəsi simvoluna çevrilir?
- 2 Verilənlər bazasına daxil edilən Emoji ifadəsinin sual işarəsi xarakterinə çevrilməsi problemini necə həll etmək olar?
- 3 MySQL Emoji xarakter probleminin həlli
- 4 Verilənlər bazası simvol dəstini utf8mb4 olaraq necə dəyişdirmək olar?
Emoji ifadəsi utf8 kodlaşdırmasında saxlanılırsaMySQL verilənlər bazasıvə ya MariaDB, göstərilə bilməz.
Nə üçün verilənlər bazasına daxil edilmiş Emoji ifadəsi sual işarəsi simvoluna çevrilir?
Emoji ifadələri 4 baytlıq simvol olduğundan və utf8 simvol dəsti yalnız 1-3 bayt simvolu dəstəklədiyi üçün Emoji ifadələri verilənlər bazasına yazıla bilməz.
Verilənlər bazasına daxil edilən Emoji ifadəsinin sual işarəsi xarakterinə çevrilməsi problemini necə həll etmək olar?
2 həll yolu var:
- Dörd baytlıq simvolları xüsusi simvollarla əvəz edərək mətni əl ilə daxil edin.
- 修改 MySQL Verilənlər bazası simvol dəsti, verilənlər bazası simvol dəstini utf8-dən utf8mb4-ə dəyişdirin, 1-4 bayt simvolları dəstəkləyin.
Əslində, birinci üsul çox işdir və məsləhət görülmür.
İkinci həlldən istifadə etmək, MySQL verilənlər bazası simvol dəstini dəyişdirmək tövsiyə olunur.
MySQL 5.5.3 versiyasından başlayaraq verilənlər bazası 4 baytlıq utf8mb4 simvol dəstini dəstəkləyə bilər və simvol 4 bayta qədər ola bilər, beləliklə, daha çox simvol dəstini dəstəkləyə bilər və həmçinin Emoji ifadələrini saxlaya bilər.
- MySQL 5.5.3-dən sonra siz utf8mb4 simvol dəstinə problemsiz olaraq təkmilləşdirə bilərsiniz.
- Eyni zamanda, utf8mb4 utf8 simvol dəsti ilə uyğun gəlir.
- Utf8 simvollarının kodlaşdırılması, yeri və saxlanması utf8mb4-dədir.
- Utf8 simvol dəsti ilə eyni, mövcud məlumatlara zərər yoxdur.
GörəphpMyAdminYeni yaradılmış verilənlər bazasında yeni yaradılmış cədvəllər üçün standart simvol kodlaşdırması belədir:Latin1
- Bu kodlaşdırma Çin və Emoji ifadələrini daxil edə bilməz;
- Verilənlər bazası simvol dəsti və cədvəlinin simvol dəstinin kodlamasını utf8mb4-ə dəyişdirməlisiniz;
- Sonra MySQL-i yenidən başladın, Çin və Emoji ifadələrini daxil edə bilərsiniz.
MySQL Emoji xarakter probleminin həlli
Addım 1:MySQL konfiqurasiya faylını my.cnf dəyişdirin
- (Windows serveri my.ini,LinuxServer my.cnf-dir)
- my.cnf faylı, adətən
/etc/mysql/my.cnfmövqe. - CWP İdarəetmə Panelimy.cnf faylı var
/etc/my.cnfmövqe.
Onu tapdıqdan sonra aşağıdakı üç hissəyə aşağıdakı məzmunu əlavə edin ▼
[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'
Addım 2:MySQL verilənlər bazasını yenidən başladın
service mysqld restart
Addım 3: Simvol dəstini yenidən yoxlayın və SQL əmr satırına ▼ daxil edin
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Aşağıdakıların olub olmadığını yoxlayın ▼

Aşağıdakı SQL əmrini daxil edin▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Bunun aşağıdakı kimi olub olmadığını yoxlayın▼
+--------------------------+--------------------+ | 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-də yeni verilənlər bazası yaratdıqdan sonra etməlisinizVerilənlər bazası koduna baxın ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Verilənlər bazası kodlaşdırması yoxdursautf8mb4, verilənlər bazası simvol dəstini dəyişdirməlisinizutf8mb4 .
Verilənlər bazası simvol dəstini utf8mb4 olaraq necə dəyişdirmək olar?
Addım 1: phpMyAdmin-də mövcud verilənlər bazası adına klikləyin, sonra SQL düyməsini basın.
Addım 2: Verilənlər bazası simvol dəstini dəyişdirmək üçün aşağıdakı əmri daxil edinutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Addım 3:MySQL verilənlər bazasını yenidən başladın
service mysqld restart
- Bu belədir.
SQL əmrlərinin bəzi nümunələri bunlardır:
Cədvəlin standart simvol dəstini və bütün simvol sütunlarını yeni simvol dəstinə dəyişdirin ▼
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;
Yalnız cədvəlin standart simvol dəstini dəyişdirsəniz▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Sahənin simvol dəstini dəyişdirin ▼
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;
Cədvəl koduna baxın ▼
SHOW CREATE TABLE tbl_name;
Sahə Kodlarına Baxın ▼
SHOW FULL COLUMNS FROM tbl_name;
Cari verilənlər bazası koduna baxın ▼
SHOW VARIABLES LIKE 'character_set_%';
- mysql-connector-java sürücü paketi yalnız 5.1.13+ versiyasında utf8mb4-ü dəstəkləyir.
Hope Chen Weiliang Blogu ( https://www.chenweiliang.com/ ) sizin üçün faydalı olan "Emojiləri MySQL-də necə saxlamaq olar? Emoji ifadəsi sual işarəsi xarakter problemi verilənlər bazasına daxil edin" paylaşdı.
Bu məqalənin linkini paylaşmağa xoş gəlmisiniz:https://www.chenweiliang.com/cwl-26592.html
