Directori d'articles
- 1 Per què l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?
- 2 Com resoldre el problema que l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?
- 3 Solució de problemes de caràcters MySQL Emoji
- 4 Com modificar el conjunt de caràcters de la base de dades a utf8mb4?
Si l'expressió Emoji s'emmagatzema a la codificació utf8Base de dades MySQLo MariaDB, no es pot mostrar.
Per què l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?
Com que les expressions Emoji són caràcters de 4 bytes i el conjunt de caràcters utf8 només admet 1-3 bytes de caràcters, les expressions Emoji no es poden escriure a la base de dades.
Com resoldre el problema que l'expressió Emoji introduïda a la base de dades es converteix en un signe d'interrogació?
Hi ha 2 solucions:
- Introduïu text manualment, substituint els caràcters de quatre bytes per caràcters personalitzats.
- modificar MySQL Conjunt de caràcters de la base de dades, canvieu el conjunt de caràcters de la base de dades de utf8 a utf8mb4, admet caràcters d'1 a 4 bytes.
De fet, el primer mètode és massa treball i no és aconsellable.
Es recomana utilitzar la segona solució, modificar el conjunt de caràcters de la base de dades MySQL.
Des de la versió MySQL 5.5.3, la base de dades pot suportar el conjunt de caràcters utf4mb8 de 4 bytes, i un caràcter pot tenir fins a 4 bytes, de manera que pot suportar més jocs de caràcters i també pot emmagatzemar expressions Emoji.
- Després de MySQL 5.5.3, bàsicament podeu actualitzar sense problemes al conjunt de caràcters utf8mb4.
- Al mateix temps, utf8mb4 és compatible amb el conjunt de caràcters utf8.
- La codificació, la posició i l'emmagatzematge dels caràcters utf8 es troben a utf8mb4.
- Igual que el conjunt de caràcters utf8, sense danys a les dades existents.
Degut aphpMyAdminPer a taules de nova creació en una base de dades de nova creació, la codificació de caràcters predeterminada és:Latin1
- Aquesta codificació no pot inserir expressions xineses i emoji;
- Heu de canviar la codificació del conjunt de caràcters del conjunt de caràcters i de la taula de la base de dades a utf8mb4;
- A continuació, reinicieu MySQL, podeu inserir expressions xineses i Emoji.
Solució de problemes de caràcters MySQL Emoji
Cap 1 步:Modifiqueu el fitxer de configuració de MySQL my.cnf
- (El servidor de Windows és my.ini,LinuxEl servidor és my.cnf)
- my.cnf, normalment en
/etc/mysql/my.cnf
posició. - Tauler de control CWPel fitxer my.cnf, que es troba a
/etc/my.cnf
posició.
Després de trobar-lo, afegiu el contingut següent a les tres parts següents ▼
[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'
Cap 2 步:Reinicieu la base de dades MySQL
service mysqld restart
Pas 3: torneu a comprovar el conjunt de caràcters i introduïu ▼ a la línia d'ordres SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Comproveu si el següent ▼
Introduïu l'ordre SQL següent▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Comproveu si és el següent▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Després de crear una nova base de dades a phpMyAdmin, calVeure el codi de la base de dades ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Si la codificació de la base de dades no ho ésutf8mb4
, heu de modificar el conjunt de caràcters de la base de dades autf8mb4
.
Com modificar el conjunt de caràcters de la base de dades a utf8mb4?
Pas 1: feu clic al nom de la base de dades actual a phpMyAdmin i, a continuació, feu clic a SQL.
Pas 2: introduïu l'ordre següent per modificar el conjunt de caràcters de la base de dadesutf8mb4
▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Cap 3 步:Reinicieu la base de dades MySQL
service mysqld restart
- Això és.
Aquests són alguns exemples d'ordres SQL:
Canvieu el conjunt de caràcters predeterminat i totes les columnes de caràcters de la taula al conjunt de caràcters nou ▼
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 només modifiqueu el conjunt de caràcters predeterminat de la taula▼
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 conjunt de caràcters d'un camp ▼
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;
Veure el codi de la taula ▼
SHOW CREATE TABLE tbl_name;
Veure codis de camp ▼
SHOW FULL COLUMNS FROM tbl_name;
Veure el codi actual de la base de dades ▼
SHOW VARIABLES LIKE 'character_set_%';
- El paquet de controladors mysql-connector-java només admet utf5.1.13mb8 a 4+
Bloc d'Hope Chen Weiliang ( https://www.chenweiliang.com/ ) ha compartit "Com desar Emoji a MySQL? Introduïu la base de dades Emoji expressió problema de caràcters de signe d'interrogació", cosa que us serà útil.
Benvingut a compartir l'enllaç d'aquest article:https://www.chenweiliang.com/cwl-26592.html
Benvingut al canal de Telegram del bloc de Chen Weiliang per rebre les últimes actualitzacions!
📚 Aquesta guia té un gran valor, 🌟Aquesta és una oportunitat rara, no la perdis! ⏰⌛💨
Comparteix i m'agrada si t'agrada!
Els vostres likes i compartir són la nostra motivació contínua!