Hoe om Emoji in MySQL te stoor? Voer die databasis Emoji uitdrukking vraagteken karakter probleem in

As die Emoji-uitdrukking in utf8-kodering gestoor wordMySQL databasisof MariaDB, kan dit nie vertoon word nie.

Waarom word die Emoji-uitdrukking wat in die databasis ingevoer is 'n vraagtekenkarakter?

Omdat Emoji-uitdrukkings 4-grepe karakters is, en die utf8-karakterstel slegs 1-3 grepe karakters ondersteun, kan Emoji-uitdrukkings nie in die databasis geskryf word nie.

Hoe om die probleem op te los dat die Emoji-uitdrukking wat in die databasis ingevoer is, 'n vraagtekenkarakter word?

Daar is 2 oplossings:

  1. Voer teks handmatig in, en vervang vier-grepe karakters met pasgemaakte karakters.
  2. verander MySQL Databasiskarakterstel, verander die databasiskarakterstel van utf8 na utf8mb4, ondersteun 1-4 grepe karakters.

Trouens, die eerste metode is te veel werk en is nie raadsaam nie.

Dit word aanbeveel om die tweede oplossing te gebruik, verander die MySQL-databasiskarakterstel.

Vanaf MySQL 5.5.3 weergawe, kan die databasis die utf4mb8 karakterstel van 4 grepe ondersteun, en 'n karakter kan tot 4 grepe hê, so dit kan meer karakterstelle ondersteun, en kan ook Emoji-uitdrukkings stoor.

  • Na MySQL 5.5.3 kan jy basies naatloos opgradeer na die utf8mb4 karakterstel.
  • Terselfdertyd is utf8mb4 versoenbaar met die utf8 karakterstel.
  • Die enkodering, posisie en berging van utf8 karakters is in utf8mb4.
  • Dieselfde as utf8 karakterstel, geen skade aan bestaande data nie.

as gevolg van diephpMyAdminVir nuutgeskepte tabelle in 'n nuutgeskepte databasis is die verstekkarakterkodering:Latin1

  • Hierdie enkodering kan nie Chinese en Emoji-uitdrukkings invoeg nie;
  • Jy moet die karakterstel-enkodering van die databasiskarakterstel en tabel verander na utf8mb4;
  • Herbegin dan MySQL, jy kan Chinese en Emoji-uitdrukkings invoeg.

MySQL Emoji karakter probleem oplossing

Stap 1:Wysig die MySQL-konfigurasielêer my.cnf

  • (Windows-bediener is my.ini,LinuxDie bediener is my.cnf)
  • my.cnf-lêer, gewoonlik in/etc/mysql/my.cnfposisie.
  • CWP-kontrolepaneelDie my.cnf-lêer is in/etc/my.cnfposisie.

Nadat jy dit gevind het, voeg asseblief die volgende inhoud by in die volgende drie dele ▼

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

Stap 2:Herbegin die MySQL-databasis

service mysqld restart

Stap 3: Gaan die karakterstel weer na en voer ▼ in die SQL-opdragreël in

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Kyk of die volgende ▼

Hoe om Emoji in MySQL te stoor? Voer die databasis Emoji uitdrukking vraagteken karakter probleem in

Voer die volgende SQL-opdrag in▼

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

Kyk of dit soos volg is▼

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

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

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

Nadat u 'n nuwe databasis in phpMyAdmin geskep het, moet uBekyk databasiskode ▼

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

As die databasiskodering nie is nieutf8mb4, moet jy die databasiskarakterstel verander nautf8mb4 .

Hoe om die databasiskarakterstel na utf8mb4 te verander?

Stap 1: Klik op die huidige databasisnaam in phpMyAdmin, klik dan SQL.

Stap 2: Voer die volgende opdrag in om die databasiskarakterstel na te veranderutf8mb4

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

Stap 3:Herbegin die MySQL-databasis

service mysqld restart
  • Dis dit.

Hier is 'n paar voorbeelde van SQL-opdragte:

Verander die verstekkarakterstel en alle karakterkolomme van die tabel na die nuwe karakterstel ▼

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;

As jy net die verstekkarakterstel van die tabel verander▼

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

Verander die karakterstel van 'n veld ▼

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;

Bekyk tabelkode ▼

SHOW CREATE TABLE tbl_name;

Bekyk veldkodes ▼

SHOW FULL COLUMNS FROM tbl_name;

Bekyk huidige databasiskode ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Die mysql-connector-java-bestuurderpakket ondersteun slegs utf5.1.13mb8 in 4+

发表 评论

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

Scroll na bo