Cómo guardar emoji en mysql Entrar en la base de datos Emoji expresión signo de interrogación problema de carácter

Si la expresión Emoji está almacenada en codificación utf8base de datos mysqlo MariaDB, no se puede mostrar.

¿Por qué la expresión Emoji ingresada en la base de datos se convierte en un signo de interrogación?

Debido a que las expresiones emoji son caracteres de 4 bytes y el conjunto de caracteres utf8 solo admite de 1 a 3 bytes de caracteres, las expresiones emoji no se pueden escribir en la base de datos.

¿Cómo resolver el problema de que la expresión Emoji ingresada en la base de datos se convierte en un signo de interrogación?

Hay 2 soluciones:

  1. Ingrese el texto manualmente, reemplazando los caracteres de cuatro bytes con caracteres personalizados.
  2. modificar MySQL Conjunto de caracteres de la base de datos, cambie el conjunto de caracteres de la base de datos de utf8 a utf8mb4, admita caracteres de 1 a 4 bytes.

De hecho, el primer método es demasiado trabajo y no es recomendable.

Se recomienda utilizar la segunda solución, modificar el conjunto de caracteres de la base de datos MySQL.

A partir de la versión MySQL 5.5.3, la base de datos puede admitir el conjunto de caracteres utf4mb8 de 4 bytes, y un carácter puede tener hasta 4 bytes, por lo que puede admitir más conjuntos de caracteres y también puede almacenar expresiones Emoji.

  • Después de MySQL 5.5.3, básicamente puede actualizar sin problemas al conjunto de caracteres utf8mb4.
  • Al mismo tiempo, utf8mb4 es compatible con el juego de caracteres utf8.
  • La codificación, posición y almacenamiento de los caracteres utf8 están en utf8mb4.
  • Igual que el conjunto de caracteres utf8, sin dañar los datos existentes.

Debido aphpMyAdminPara las tablas recién creadas en una base de datos recién creada, la codificación de caracteres predeterminada es:Latin1

  • Esta codificación no puede insertar expresiones en chino y emoji;
  • Debe cambiar la codificación del juego de caracteres del juego de caracteres y la tabla de la base de datos a utf8mb4;
  • Luego, reinicie MySQL, puede insertar expresiones en chino y emoji.

Solución de problema de caracteres MySQL Emoji

Paso 1:Modifique el archivo de configuración de MySQL my.cnf

  • (El servidor de Windows es my.ini,LinuxEl servidor es my.cnf)
  • archivo my.cnf, normalmente en/etc/mysql/my.cnfposición.
  • Panel de control de CWPEl archivo my.cnf, está en/etc/my.cnfposición.

Después de encontrarlo, agregue el siguiente contenido en las siguientes 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'

Paso 2:Reinicie la base de datos MySQL

service mysqld restart

Paso 3: Verifique el juego de caracteres nuevamente e ingrese ▼ en la línea de comando SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Compruebe si lo siguiente ▼

Cómo guardar emoji en mysql Entrar en la base de datos Emoji expresión signo de interrogación problema de carácter

Ingrese el siguiente comando SQL▼

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

Compruebe si es el siguiente▼

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

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

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

Después de crear una nueva base de datos en phpMyAdmin, debeVer código de base de datos ▼

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

Si la codificación de la base de datos no esutf8mb4, debe modificar el juego de caracteres de la base de datos autf8mb4 .

¿Cómo modificar el conjunto de caracteres de la base de datos a utf8mb4?

Paso 1: haga clic en el nombre de la base de datos actual en phpMyAdmin, luego haga clic en SQL.

Paso 2: ingrese el siguiente comando para modificar el conjunto de caracteres de la base de datos autf8mb4

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

Paso 3:Reinicie la base de datos MySQL

service mysqld restart
  • Eso es todo.

Estos son algunos ejemplos de comandos SQL:

Cambie el conjunto de caracteres predeterminado y todas las columnas de caracteres de la tabla al nuevo conjunto 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;

Si solo modifica el conjunto de caracteres predeterminado de la tabla▼

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 juego de caracteres de un 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 de tabla ▼

SHOW CREATE TABLE tbl_name;

Ver códigos de campo ▼

SHOW FULL COLUMNS FROM tbl_name;

Ver el código de la base de datos actual ▼

SHOW VARIABLES LIKE 'character_set_%';
  • El paquete de controladores mysql-connector-java solo es compatible con utf5.1.13mb8 en 4+

Esperanza Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartió "¿Cómo guardar Emoji en MySQL? Ingrese a la base de datos Emoji expresión problema de carácter de signo de interrogación", que es útil para usted.

Bienvenido a compartir el enlace de este artículo:https://www.chenweiliang.com/cwl-26592.html

¡Bienvenido al canal de Telegram del blog de Chen Weiliang para obtener las últimas actualizaciones!

🔔 ¡Sea el primero en obtener la valiosa "Guía de uso de la herramienta de inteligencia artificial para marketing de contenidos ChatGPT" en el directorio superior del canal! 🌟
📚 Esta guía contiene un gran valor. 🌟Esta es una oportunidad única, ¡no la pierdas! ⏰⌛💨
¡Comparte y dale me gusta si te gusta!
¡Su compartir y Me gusta son nuestra motivación continua!

 

发表 评论

Su dirección de correo electrónico no será publicada. 项 已 用 * 标注

滚动 到 顶部