Como salvar Emoji no MySQL? Digite o problema do caractere de ponto de interrogação da expressão Emoji do banco de dados

Se a expressão Emoji estiver armazenada na codificação utf8banco de dados MySQLou MariaDB, ele não pode ser exibido.

Por que a expressão Emoji inserida no banco de dados se torna um caractere de ponto de interrogação?

Como as expressões Emoji são caracteres de 4 bytes e o conjunto de caracteres utf8 suporta apenas 1-3 bytes de caracteres, as expressões Emoji não podem ser gravadas no banco de dados.

Como resolver o problema de que a expressão Emoji inserida no banco de dados se torna um caractere de ponto de interrogação?

Existem 2 soluções:

  1. Digite o texto manualmente, substituindo caracteres de quatro bytes por caracteres personalizados.
  2. modificar MySQL Conjunto de caracteres do banco de dados, altere o conjunto de caracteres do banco de dados de utf8 para utf8mb4, suporte caracteres de 1-4 bytes.

Na verdade, o primeiro método dá muito trabalho e não é aconselhável.

Recomenda-se usar a segunda solução, modificar o conjunto de caracteres do banco de dados MySQL.

A partir da versão MySQL 5.5.3, o banco de dados pode suportar o conjunto de caracteres utf4mb8 de 4 bytes, e um caractere pode ter até 4 bytes, para que possa suportar mais conjuntos de caracteres e também armazenar expressões Emoji.

  • Após o MySQL 5.5.3, você pode basicamente atualizar para o conjunto de caracteres utf8mb4.
  • Ao mesmo tempo, utf8mb4 é compatível com o conjunto de caracteres utf8.
  • A codificação, posição e armazenamento de caracteres utf8 estão em utf8mb4.
  • Igual ao conjunto de caracteres utf8, sem danos aos dados existentes.

Devido aphpMyAdminPara tabelas recém-criadas em um banco de dados recém-criado, a codificação de caracteres padrão é:Latin1

  • Essa codificação não pode inserir expressões em chinês e emoji;
  • Você precisa alterar a codificação do conjunto de caracteres do conjunto de caracteres e da tabela do banco de dados para utf8mb4;
  • Em seguida, reinicie o MySQL, você pode inserir expressões chinesas e emoji.

Solução de problema de caractere MySQL Emoji

Etapa 1:Modifique o arquivo de configuração do MySQL my.cnf

  • (O servidor Windows é my.ini,LinuxO servidor é meu.cnf)
  • arquivo my.cnf, geralmente em/etc/mysql/my.cnfLocalização.
  • Painel de controle CWPO arquivo my.cnf, está em/etc/my.cnfLocalização.

Depois de encontrá-lo, adicione o seguinte conteúdo nas três partes a seguir ▼

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

Etapa 2:Reinicie o banco de dados MySQL

service mysqld restart

Etapa 3: verifique o conjunto de caracteres novamente e digite ▼ na linha de comando SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Verifique se o seguinte ▼

Como salvar Emoji no MySQL? Digite o problema do caractere de ponto de interrogação da expressão Emoji do banco de dados

Digite o seguinte comando SQL▼

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

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

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

Após criar um novo banco de dados no phpMyAdmin, você deveVer código do banco de dados ▼

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

Se a codificação do banco de dados não forutf8mb4, você deve modificar o conjunto de caracteres do banco de dados parautf8mb4 .

Como modificar o conjunto de caracteres do banco de dados para utf8mb4?

Etapa 1: clique no nome do banco de dados atual no phpMyAdmin e clique em SQL.

Etapa 2: Digite o seguinte comando para modificar o conjunto de caracteres do banco de dados parautf8mb4

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

Etapa 3:Reinicie o banco de dados MySQL

service mysqld restart
  • É isso.

Aqui estão alguns exemplos de comandos SQL:

Altere o conjunto de caracteres padrão e todas as colunas de caracteres da tabela para o novo 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;

Se você modificar apenas o conjunto de caracteres padrão da tabela▼

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

Modifique o conjunto de caracteres de um 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 tabela ▼

SHOW CREATE TABLE tbl_name;

Visualizar códigos de campo ▼

SHOW FULL COLUMNS FROM tbl_name;

Veja o código do banco de dados atual ▼

SHOW VARIABLES LIKE 'character_set_%';
  • O pacote de driver mysql-connector-java suporta apenas utf5.1.13mb8 em 4+

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartilhou "Como salvar Emoji no MySQL? Digite o problema do caractere de ponto de interrogação da expressão Emoji do banco de dados", o que é útil para você.

Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-26592.html

Bem-vindo ao canal Telegram do blog de Chen Weiliang para receber as últimas atualizações!

🔔 Seja o primeiro a obter o valioso "Guia de uso da ferramenta de IA de marketing de conteúdo ChatGPT" no diretório superior do canal! 🌟
📚 Este guia contém um valor enorme, 🌟Esta é uma oportunidade rara, não perca! ⏰⌛💨
Compartilhe e curta se gostar!
Seus compartilhamentos e curtidas são nossa motivação contínua!

 

发表 评论

Seu endereço de e-mail não será publicado. 必填 项 已 用 * 标注

滚动 到 顶部