Como gardar Emoji en MySQL? Introduza a base de datos Problema de caracteres de signo de interrogación de expresión de emoji

Se a expresión Emoji se almacena na codificación utf8Base de datos MySQLou MariaDB, non se pode mostrar.

Por que a expresión Emoji introducida na base de datos convértese nun signo de interrogación?

Dado que as expresións emoji son caracteres de 4 bytes e o conxunto de caracteres utf8 só admite 1-3 bytes de caracteres, as expresións emoji non se poden escribir na base de datos.

Como resolver o problema de que a expresión Emoji introducida na base de datos se converta nun signo de interrogación?

Hai 2 solucións:

  1. Introduza o texto manualmente, substituíndo os caracteres de catro bytes por caracteres personalizados.
  2. modificar MySQL Conxunto de caracteres da base de datos, cambia o conxunto de caracteres da base de datos de utf8 a utf8mb4, admite caracteres de 1 a 4 bytes.

De feito, o primeiro método é demasiado traballo e non é aconsellable.

Recoméndase usar a segunda solución, modificar o conxunto de caracteres da base de datos MySQL.

A partir da versión MySQL 5.5.3, a base de datos pode admitir o conxunto de caracteres utf4mb8 de 4 bytes e un carácter pode ter ata 4 bytes, polo que pode admitir máis conxuntos de caracteres e tamén pode almacenar expresións Emoji.

  • Despois de MySQL 5.5.3, basicamente pode actualizar sen problemas ao conxunto de caracteres utf8mb4.
  • Ao mesmo tempo, utf8mb4 é compatible co conxunto de caracteres utf8.
  • A codificación, a posición e o almacenamento dos caracteres utf8 están en utf8mb4.
  • Igual que o conxunto de caracteres utf8, sen danos aos datos existentes.

Debido aphpMyAdminPara as táboas recentemente creadas nunha base de datos recentemente creada, a codificación de caracteres predeterminada é:Latin1

  • Esta codificación non pode inserir expresións chinesas e emojis;
  • Debe cambiar a codificación do conxunto de caracteres do conxunto de caracteres da base de datos e da táboa a utf8mb4;
  • Despois, reinicia MySQL, podes inserir expresións chinés e emoji.

Solución de problemas de caracteres MySQL Emoji

Capitulo 1:Modifique o ficheiro de configuración de MySQL my.cnf

  • (Windows server é my.ini,LinuxO servidor é my.cnf)
  • my.cnf, normalmente en/etc/mysql/my.cnfposición.
  • Panel de control CWPO ficheiro my.cnf está en/etc/my.cnfposición.

Despois de atopalo, engade o seguinte contido nas seguintes tres partes ▼

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

Capitulo 2:Reinicie a base de datos MySQL

service mysqld restart

Paso 3: Comprobe o conxunto de caracteres de novo e introduza ▼ na liña de comandos SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Comproba se o seguinte ▼

Como gardar Emoji en MySQL? Introduza a base de datos Problema de caracteres de signo de interrogación de expresión de emoji

Introduza o seguinte comando SQL▼

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

Comproba se é o seguinte▼

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

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

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

Despois de crear unha nova base de datos en phpMyAdmin, debesVer código da base de datos ▼

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

Se a codificación da base de datos non éutf8mb4, debe modificar o conxunto de caracteres da base de datos autf8mb4 .

Como modificar o conxunto de caracteres da base de datos a utf8mb4?

Paso 1: fai clic no nome da base de datos actual en phpMyAdmin e, a continuación, fai clic en SQL.

Paso 2: introduza o seguinte comando para modificar o conxunto de caracteres da base de datosutf8mb4

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

Capitulo 3:Reinicie a base de datos MySQL

service mysqld restart
  • Iso é.

Aquí tes algúns exemplos de comandos SQL:

Cambia o conxunto de caracteres predeterminado e todas as columnas de caracteres da táboa ao novo conxunto de caracteres ▼

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;

Se só modifica o conxunto de caracteres predeterminado da táboa▼

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

Modifica o conxunto de caracteres dun campo ▼

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;

Ver código da táboa ▼

SHOW CREATE TABLE tbl_name;

Ver códigos de campo ▼

SHOW FULL COLUMNS FROM tbl_name;

Ver código actual da base de datos ▼

SHOW VARIABLES LIKE 'character_set_%';
  • O paquete de controladores mysql-connector-java só admite utf5.1.13mb8 en 4+

Blog de Hope Chen Weiliang ( https://www.chenweiliang.com/ ) compartiu "Como gardar Emoji en MySQL? Introduza a base de datos Emoji expresión problema do signo de interrogación", que é útil para vostede.

Benvido a compartir a ligazón deste artigo:https://www.chenweiliang.com/cwl-26592.html

Benvido á canle de Telegram do blog de Chen Weiliang para recibir as últimas actualizacións.

🔔 Sexa o primeiro en obter a valiosa "Guía de uso da ferramenta de intelixencia artificial de marketing de contidos de ChatGPT" no directorio principal da canle. 🌟
📚 Esta guía contén un gran valor, 🌟Esta é unha oportunidade rara, non a perdas! ⏰⌛💨
Comparte e da like se che gusta!
O teu compartir e gústame son a nosa motivación continua!

 

发表 评论

O seu enderezo de correo electrónico non se publicará. Utilízanse os campos obrigatorios * Etiqueta

desprázate cara arriba