Bagaimana cara menyimpan Emoji ke MySQL? Masuk ke database Masalah karakter tanda tanya ekspresi Emoji

Jika ekspresi Emoji disimpan dalam penyandian utf8database MySQLatau MariaDB, tidak dapat ditampilkan.

Mengapa ekspresi Emoji yang dimasukkan ke dalam database menjadi karakter tanda tanya?

Karena ekspresi Emoji adalah karakter 4 byte, dan kumpulan karakter utf8 hanya mendukung 1-3 byte karakter, ekspresi Emoji tidak dapat ditulis ke dalam database.

Bagaimana mengatasi masalah ekspresi Emoji yang dimasukkan ke dalam database menjadi karakter tanda tanya?

Ada 2 solusi:

  1. Masukkan teks secara manual, ganti karakter empat byte dengan karakter khusus.
  2. memodifikasi MySQL Kumpulan karakter basis data, ubah kumpulan karakter basis data dari utf8 ke utf8mb4, dukung karakter 1-4 byte.

Padahal, cara pertama terlalu banyak bekerja dan tidak disarankan.

Disarankan untuk menggunakan solusi kedua, memodifikasi set karakter database MySQL.

Sejak versi MySQL 5.5.3, database dapat mendukung set karakter utf4mb8 4 byte, dan karakter dapat memiliki hingga 4 byte, sehingga dapat mendukung lebih banyak set karakter, dan juga dapat menyimpan ekspresi Emoji.

  • Setelah MySQL 5.5.3, pada dasarnya Anda dapat meningkatkan dengan mulus ke set karakter utf8mb4.
  • Pada saat yang sama, utf8mb4 kompatibel dengan set karakter utf8.
  • Pengkodean, posisi, dan penyimpanan karakter utf8 ada di utf8mb4.
  • Sama seperti set karakter utf8, tidak ada kerusakan pada data yang ada.

Disebabkan olehphpMyAdminUntuk tabel yang baru dibuat dalam database yang baru dibuat, pengkodean karakter default adalah:Latin1

  • Encoding ini tidak dapat menyisipkan ekspresi China dan Emoji;
  • Anda perlu mengubah pengkodean set karakter dari set karakter dan tabel database menjadi utf8mb4;
  • Kemudian, restart MySQL, Anda dapat memasukkan ekspresi Cina dan Emoji.

Solusi masalah karakter MySQL Emoji

1Ubah file konfigurasi MySQL my.cnf

  • (Server Windows adalah my.ini,LinuxServernya adalah my.cnf)
  • file my.cnf, biasanya dalam/etc/mysql/my.cnfposisi.
  • Panel Kontrol CWPFile my.cnf, ada di/etc/my.cnfposisi.

Setelah Anda menemukannya, silakan tambahkan konten berikut di tiga bagian berikut

[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'

2Mulai ulang database MySQL

service mysqld restart

Langkah 3: Periksa set karakter lagi dan masukkan di baris perintah SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Periksa apakah berikut

Bagaimana cara menyimpan Emoji ke MySQL? Masuk ke database Masalah karakter tanda tanya ekspresi Emoji

Masukkan perintah SQL berikut▼

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

Periksa apakah itu sebagai berikut▼

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

| 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 |

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

Setelah membuat database baru di phpMyAdmin, Anda harusLihat kode basis data

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

Jika pengkodean basis data tidakutf8mb4, Anda harus mengubah set karakter database menjadiutf8mb4 .

Bagaimana cara mengubah karakter basis data yang disetel ke utf8mb4?

Langkah 1: Klik nama database saat ini di phpMyAdmin, lalu klik SQL.

Langkah 2: Masukkan perintah berikut untuk mengubah set karakter database menjadiutf8mb4

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

3Mulai ulang database MySQL

service mysqld restart
  • Itu dia.

Berikut adalah beberapa contoh perintah SQL:

Ubah set karakter default dan semua kolom karakter tabel ke set karakter baru

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;

Jika Anda hanya mengubah set karakter default tabel▼

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

Ubah set karakter bidang

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;

Lihat kode tabel

SHOW CREATE TABLE tbl_name;

Lihat Kode Bidang

SHOW FULL COLUMNS FROM tbl_name;

Lihat kode database saat ini

SHOW VARIABLES LIKE 'character_set_%';
  • Paket driver mysql-connector-java hanya mendukung utf5.1.13mb8 di 4+

Harapan Chen Weiliang Blog ( https://www.chenweiliang.com/ ) berbagi "Bagaimana cara menyimpan Emoji ke MySQL? Masuk ke database Emoji ekspresi masalah karakter tanda tanya", yang membantu Anda.

Selamat datang untuk membagikan tautan artikel ini:https://www.chenweiliang.com/cwl-26592.html

Selamat datang di saluran Telegram blog Chen Weiliang untuk mendapatkan pembaruan terkini!

🔔 Jadilah orang pertama yang mendapatkan "Panduan Penggunaan Alat AI Pemasaran Konten ChatGPT" yang berharga di direktori teratas saluran! 🌟
📚 Panduan ini mengandung nilai yang sangat besar, 🌟Ini adalah kesempatan langka, jangan sampai terlewatkan! ⏰⌛💨
Bagikan dan sukai jika Anda suka!
Berbagi dan suka Anda adalah motivasi berkelanjutan kami!

 

发表 评论

Alamat email Anda tidak akan dipublikasikan. 必填 项 已 用 * 标注

滚动 到 顶部