Emojiləri MySQL-də necə saxlamaq olar? Verilənlər bazasına Emoji ifadəsi sual işarəsi xarakter problemini daxil edin

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:

  1. Dörd baytlıq simvolları xüsusi simvollarla əvəz edərək mətni əl ilə daxil edin.
  2. 修改 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 ▼

Emojiləri MySQL-də necə saxlamaq olar? Verilənlər bazasına Emoji ifadəsi sual işarəsi xarakter problemini daxil edin

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.

发表 评论

E-poçt ünvanınız dərc olunmayacaq. Zəruri sahələrdən istifadə olunur * Etiket

Top gedin