Artikelgids
- 1 Waarom word die Emoji-uitdrukking wat in die databasis ingevoer is 'n vraagtekenkarakter?
- 2 Hoe om die probleem op te los dat die Emoji-uitdrukking wat in die databasis ingevoer is, 'n vraagtekenkarakter word?
- 3 MySQL Emoji karakter probleem oplossing
- 4 Hoe om die databasiskarakterstel na utf8mb4 te verander?
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:
- Voer teks handmatig in, en vervang vier-grepe karakters met pasgemaakte karakters.
- 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 ▼

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+
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "Hoe om Emoji in MySQL te stoor? Tik die databasis Emoji uitdrukking vraagteken karakter probleem", wat nuttig is vir jou.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-26592.html
