So speichern Sie Emoji in MySQL Geben Sie das Fragezeichenzeichenproblem des Emoji-Ausdrucks in der Datenbank ein

Wenn der Emoji-Ausdruck in utf8-Codierung gespeichert istMySQL-Datenbankoder MariaDB, kann es nicht angezeigt werden.

Warum wird der in die Datenbank eingegebene Emoji-Ausdruck zu einem Fragezeichen?

Da Emoji-Ausdrücke 4-Byte-Zeichen sind und der utf8-Zeichensatz nur 1-3 Byte Zeichen unterstützt, können Emoji-Ausdrücke nicht in die Datenbank geschrieben werden.

Wie kann das Problem gelöst werden, dass der in die Datenbank eingegebene Emoji-Ausdruck zu einem Fragezeichen wird?

Es gibt 2 Lösungen:

  1. Geben Sie Text manuell ein und ersetzen Sie Vier-Byte-Zeichen durch benutzerdefinierte Zeichen.
  2. ändern MySQL Datenbank-Zeichensatz, ändern Sie den Datenbank-Zeichensatz von utf8 auf utf8mb4, unterstützen Sie 1-4 Byte-Zeichen.

Tatsächlich ist die erste Methode zu arbeitsintensiv und nicht ratsam.

Es wird empfohlen, die zweite Lösung zu verwenden, den Zeichensatz der MySQL-Datenbank zu ändern.

Ab MySQL 5.5.3-Version kann die Datenbank den utf4mb8-Zeichensatz von 4 Bytes unterstützen, und ein Zeichen kann bis zu 4 Bytes haben, sodass mehr Zeichensätze unterstützt und auch Emoji-Ausdrücke gespeichert werden können.

  • Nach MySQL 5.5.3 können Sie grundsätzlich nahtlos auf den Zeichensatz utf8mb4 upgraden.
  • Gleichzeitig ist utf8mb4 mit dem utf8-Zeichensatz kompatibel.
  • Die Kodierung, Position und Speicherung von utf8-Zeichen erfolgt in utf8mb4.
  • Gleich wie utf8-Zeichensatz, keine Beschädigung vorhandener Daten.

DurchphpMyAdminFür neu erstellte Tabellen in einer neu erstellten Datenbank lautet die Standardzeichencodierung:Latin1

  • Diese Codierung kann keine chinesischen und Emoji-Ausdrücke einfügen;
  • Sie müssen die Zeichensatzcodierung des Datenbankzeichensatzes und der Tabelle auf utf8mb4 ändern;
  • Starten Sie dann MySQL neu, Sie können chinesische und Emoji-Ausdrücke einfügen.

Problemlösung für MySQL-Emoji-Zeichen

1 步:Ändern Sie die MySQL-Konfigurationsdatei my.cnf

  • (Windows-Server ist meine.ini,LinuxDer Server ist my.cnf)
  • my.cnf-Datei, normalerweise in/etc/mysql/my.cnfPosition.
  • CWP-SystemsteuerungDie my.cnf-Datei ist in/etc/my.cnfPosition.

Nachdem Sie es gefunden haben, fügen Sie bitte den folgenden Inhalt in die folgenden drei Teile ein ▼

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

2 步:Starten Sie die MySQL-Datenbank neu

service mysqld restart

Schritt 3: Überprüfen Sie erneut den Zeichensatz und geben Sie ▼ in die SQL-Befehlszeile ein

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Überprüfen Sie, ob das folgende ▼

So speichern Sie Emoji in MySQL Geben Sie das Fragezeichenzeichenproblem des Emoji-Ausdrucks in der Datenbank ein

Geben Sie den folgenden SQL-Befehl▼ ein

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

Überprüfen Sie, ob es wie folgt ist▼

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

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

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

Nachdem Sie eine neue Datenbank in phpMyAdmin erstellt haben, müssen SieDatenbankcode anzeigen ▼

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

Wenn die Datenbankcodierung nicht istutf8mb4, müssen Sie den Datenbankzeichensatz auf ändernutf8mb4 .

Wie ändere ich den Datenbankzeichensatz auf utf8mb4?

Schritt 1: Klicken Sie in phpMyAdmin auf den aktuellen Datenbanknamen und dann auf SQL.

Schritt 2: Geben Sie den folgenden Befehl ein, um den Zeichensatz der Datenbank zu ändernutf8mb4

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

3 步:Starten Sie die MySQL-Datenbank neu

service mysqld restart
  • Das ist es.

Hier sind einige Beispiele für SQL-Befehle:

Ändern Sie den Standardzeichensatz und alle Zeichenspalten der Tabelle auf den neuen Zeichensatz ▼

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;

Wenn Sie nur den Standardzeichensatz der Tabelle ändern▼

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

Zeichensatz eines Feldes ändern ▼

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;

Tabellencode ▼ anzeigen

SHOW CREATE TABLE tbl_name;

Feldcodes anzeigen ▼

SHOW FULL COLUMNS FROM tbl_name;

Aktuellen Datenbankcode anzeigen ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Das mysql-connector-java-Treiberpaket unterstützt nur utf5.1.13mb8 in 4+

发表 评论

Ihre E-Mail-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

Nach oben scrollen