Emojilarni MySQL-ga qanday saqlash mumkin? Ma'lumotlar bazasiga Emoji ifodasi savol belgisi belgisi muammosini kiriting

Emoji ifodasi utf8 kodlashda saqlangan bo'lsaMySQL ma'lumotlar bazasiyoki MariaDB, uni ko'rsatib bo'lmaydi.

Nima uchun ma'lumotlar bazasiga kiritilgan Emoji ifodasi savol belgisiga aylanadi?

Emoji ifodalari 4 baytli belgilar bo'lgani uchun va utf8 belgilar to'plami faqat 1-3 bayt belgilarni qo'llab-quvvatlaydi, Emoji ifodalarini ma'lumotlar bazasiga yozib bo'lmaydi.

Ma'lumotlar bazasiga kiritilgan Emoji ifodasi savol belgisi belgisiga aylanishi muammosini qanday hal qilish mumkin?

2 ta yechim mavjud:

  1. To'rt baytli belgilarni maxsus belgilar bilan almashtirib, matnni qo'lda kiriting.
  2. o'zgartirish MySQL Ma'lumotlar bazasi belgilar to'plami, ma'lumotlar bazasi belgilar to'plamini utf8 dan utf8mb4 ga o'zgartiring, 1-4 bayt belgilarni qo'llab-quvvatlang.

Aslida, birinchi usul juda ko'p ish va tavsiya etilmaydi.

Ikkinchi yechimdan foydalanish, MySQL ma'lumotlar bazasi belgilar to'plamini o'zgartirish tavsiya etiladi.

MySQL 5.5.3 versiyasidan boshlab, ma'lumotlar bazasi 4 baytlik utf8mb4 belgilar to'plamini qo'llab-quvvatlashi mumkin va belgi 4 baytgacha bo'lishi mumkin, shuning uchun u ko'proq belgilar to'plamini qo'llab-quvvatlashi va Emoji ifodalarini saqlashi mumkin.

  • MySQL 5.5.3 dan so'ng siz asosan utf8mb4 belgilar to'plamiga muammosiz yangilashingiz mumkin.
  • Shu bilan birga, utf8mb4 utf8 belgilar to'plamiga mos keladi.
  • Utf8 belgilarini kodlash, joylashtirish va saqlash utf8mb4 da.
  • Utf8 belgilar to'plami bilan bir xil, mavjud ma'lumotlarga zarar yetkazilmaydi.

SababliphpMyAdminYangi yaratilgan ma'lumotlar bazasida yangi yaratilgan jadvallar uchun standart belgilar kodlash:Latin1

  • Ushbu kodlash xitoycha va emoji ifodalarini kirita olmaydi;
  • Ma'lumotlar bazasi belgilar to'plami va jadvalining belgilar to'plamini kodlashni utf8mb4 ga o'zgartirishingiz kerak;
  • Keyin MySQL-ni qayta ishga tushiring, siz xitoycha va emoji ifodalarini kiritishingiz mumkin.

MySQL Emoji belgilar muammosi yechimi

1 yil:MySQL konfiguratsiya faylini my.cnf o'zgartiring

  • (Windows serveri my.ini,LinuxServer my.cnf)
  • my.cnf fayli, odatda/etc/mysql/my.cnfpozitsiya.
  • CWP boshqaruv panelimy.cnf fayli mavjud/etc/my.cnfpozitsiya.

Uni topganingizdan so'ng, quyidagi uchta qismga quyidagi tarkibni qo'shing ▼

[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 yil:MySQL ma'lumotlar bazasini qayta ishga tushiring

service mysqld restart

3-qadam: Belgilar to'plamini yana tekshiring va SQL buyruq satriga ▼ kiriting

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Quyidagilarni tekshiring ▼

Emojilarni MySQL-ga qanday saqlash mumkin? Ma'lumotlar bazasiga Emoji ifodasi savol belgisi belgisi muammosini kiriting

Quyidagi SQL buyrug'ini kiriting▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Bu quyidagicha ekanligini tekshiring▼

 +--------------------------+--------------------+

| 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-da yangi ma'lumotlar bazasini yaratgandan so'ng, kerakMa'lumotlar bazasi kodini ko'rish ▼

SHOW CREATE DATABASE db_name;
  • kabi:SHOW CREATE DATABASE test;

Agar ma'lumotlar bazasini kodlash bo'lmasautf8mb4, ma'lumotlar bazasi belgilarini o'zgartirishingiz kerakutf8mb4 .

Ma'lumotlar bazasi belgilarini utf8mb4 ga qanday o'zgartirish mumkin?

1-qadam: phpMyAdmin-da joriy ma'lumotlar bazasi nomini bosing, so'ng SQL-ni bosing.

2-qadam: Ma'lumotlar bazasi belgilarini o'zgartirish uchun quyidagi buyruqni kiritingutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • kabi:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

3 yil:MySQL ma'lumotlar bazasini qayta ishga tushiring

service mysqld restart
  • Bo'ldi shu.

Quyida SQL buyruqlarining ba'zi misollari keltirilgan:

Standart belgilar to'plamini va jadvalning barcha belgilar ustunlarini yangi belgilar to'plamiga o'zgartiring ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • kabi:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Agar siz faqat jadvalning standart belgilar to'plamini o'zgartirsangiz▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • kabi:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Maydonning belgilar to'plamini o'zgartirish ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • kabi:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Jadval kodini ko'rish ▼

SHOW CREATE TABLE tbl_name;

Maydon kodlarini ko'rish ▼

SHOW FULL COLUMNS FROM tbl_name;

Joriy ma'lumotlar bazasi kodini ko'rish ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Mysql-connector-java drayver paketi faqat 5.1.13+ da utf8mb4-ni qo'llab-quvvatlaydi

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) "Emojilarni MySQL-ga qanday saqlash mumkin? Ma'lumotlar bazasiga Emoji ifodasi savol belgisi belgisi muammosini kiriting", bu siz uchun foydalidir.

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-26592.html

Eng so'nggi yangiliklardan xabardor bo'lish uchun Chen Veyliang blogining Telegram kanaliga xush kelibsiz!

🔔 Birinchi bo'lib kanalning yuqori katalogida qimmatli "ChatGPT Content Marketing AI vositasidan foydalanish bo'yicha qo'llanma"ni qo'lga kiriting! 🌟
📚 Ushbu qo'llanmada katta ahamiyatga ega, 🌟Bu kamdan-kam imkoniyat, uni qo'ldan boy bermang! ⏰⌛💨
Baham ko'ring va yoqsa like!
Sizning baham ko'rish va yoqtirishlaringiz bizning doimiy motivatsiyamizdir!

 

发表 评论

Sizning elektron pochta manzilingiz e'lon qilinmaydi. 必填 项 已 用 * Yorliq

tepaga aylantiring