Com desar Emoji a MySQL Introduïu la base de dades Problema de caràcters de signe d'interrogació d'expressió Emoji

Si l'expressió Emoji s'emmagatzema a la codificació utf8Base de dades MySQLo MariaDB, no es pot mostrar.

Per què l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?

Com que les expressions Emoji són caràcters de 4 bytes i el conjunt de caràcters utf8 només admet 1-3 bytes de caràcters, les expressions Emoji no es poden escriure a la base de dades.

Com resoldre el problema que l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?

Hi ha 2 solucions:

  1. Introduïu text manualment, substituint els caràcters de quatre bytes per caràcters personalitzats.
  2. modificar MySQL Conjunt de caràcters de la base de dades, canvieu el conjunt de caràcters de la base de dades de utf8 a utf8mb4, admet caràcters d'1 a 4 bytes.

De fet, el primer mètode és massa treball i no és aconsellable.

Es recomana utilitzar la segona solució, modificar el conjunt de caràcters de la base de dades MySQL.

Des de la versió MySQL 5.5.3, la base de dades pot suportar el conjunt de caràcters utf4mb8 de 4 bytes, i un caràcter pot tenir fins a 4 bytes, de manera que pot suportar més jocs de caràcters i també pot emmagatzemar expressions Emoji.

  • Després de MySQL 5.5.3, bàsicament podeu actualitzar sense problemes al conjunt de caràcters utf8mb4.
  • Al mateix temps, utf8mb4 és compatible amb el conjunt de caràcters utf8.
  • La codificació, la posició i l'emmagatzematge dels caràcters utf8 es troben a utf8mb4.
  • Igual que el conjunt de caràcters utf8, sense danys a les dades existents.

Degut aphpMyAdminPer a taules de nova creació en una base de dades de nova creació, la codificació de caràcters predeterminada és:Latin1

  • Aquesta codificació no pot inserir expressions xineses i emoji;
  • Heu de canviar la codificació del conjunt de caràcters del conjunt de caràcters i de la taula de la base de dades a utf8mb4;
  • A continuació, reinicieu MySQL, podeu inserir expressions xineses i Emoji.

Solució de problemes de caràcters MySQL Emoji

Cap 1 步:Modifiqueu el fitxer de configuració de MySQL my.cnf

  • (El servidor de Windows és my.ini,LinuxEl servidor és my.cnf)
  • my.cnf, normalment en/etc/mysql/my.cnfposició.
  • Tauler de control CWPel fitxer my.cnf, que es troba a/etc/my.cnfposició.

Després de trobar-lo, afegiu el contingut següent a les tres parts següents ▼

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

Cap 2 步:Reinicieu la base de dades MySQL

service mysqld restart

Pas 3: torneu a comprovar el conjunt de caràcters i introduïu ▼ a la línia d'ordres SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Comproveu si el següent ▼

Com desar Emoji a MySQL Introduïu la base de dades Problema de caràcters de signe d'interrogació d'expressió Emoji

Introduïu l'ordre SQL següent▼

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

Comproveu si és el següent▼

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

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

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

Després de crear una nova base de dades a phpMyAdmin, calVeure el codi de la base de dades ▼

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

Si la codificació de la base de dades no ho ésutf8mb4, heu de modificar el conjunt de caràcters de la base de dades autf8mb4 .

Com modificar el conjunt de caràcters de la base de dades a utf8mb4?

Pas 1: feu clic al nom de la base de dades actual a phpMyAdmin i, a continuació, feu clic a SQL.

Pas 2: introduïu l'ordre següent per modificar el conjunt de caràcters de la base de dadesutf8mb4

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

Cap 3 步:Reinicieu la base de dades MySQL

service mysqld restart
  • Això és.

Aquests són alguns exemples d'ordres SQL:

Canvieu el conjunt de caràcters predeterminat i totes les columnes de caràcters de la taula al conjunt de caràcters nou ▼

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;

Si només modifiqueu el conjunt de caràcters predeterminat de la taula▼

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

Modificar el conjunt de caràcters d'un camp ▼

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;

Veure el codi de la taula ▼

SHOW CREATE TABLE tbl_name;

Veure codis de camp ▼

SHOW FULL COLUMNS FROM tbl_name;

Veure el codi actual de la base de dades ▼

SHOW VARIABLES LIKE 'character_set_%';
  • El paquet de controladors mysql-connector-java només admet utf5.1.13mb8 a 4+

Bloc d'Hope Chen Weiliang ( https://www.chenweiliang.com/ ) ha compartit "Com desar Emoji a MySQL? Introduïu la base de dades Emoji expressió problema de caràcters de signe d'interrogació", cosa que us serà útil.

Benvingut a compartir l'enllaç d'aquest article:https://www.chenweiliang.com/cwl-26592.html

Benvingut al canal de Telegram del bloc de Chen Weiliang per rebre les últimes actualitzacions!

🔔 Sigues el primer a obtenir la valuosa "Guia d'ús de l'eina de màrqueting de continguts de ChatGPT" al directori principal del canal! 🌟
📚 Aquesta guia té un gran valor, 🌟Aquesta és una oportunitat rara, no la perdis! ⏰⌛💨
Comparteix i m'agrada si t'agrada!
Els vostres likes i compartir són la nostra motivació contínua!

 

发表 评论

La vostra adreça de correu electrònic no es publicarà. S'utilitzen els camps obligatoris * 标注

desplaçar-se a dalt