So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

Wenn für MySQL 5.5 der Zeichensatz nicht festgelegt ist, ist der Standardzeichensatz von MySQL der lateinische Zeichensatz latin1.

Mit der Weiterentwicklung verschiedener Unternehmen tauchen jedoch neben den Zeichen der Landessprachen verschiedener Länder häufig einige Emoticons in Anwendungen auf. Vor MySQL 5.5 unterstützte die UTF-8-Kodierung nur 1-3 Bytes und den Unicode-Kodierungsbereich des BMP-Teils. Ab MySQL 5.5 kann die 4-Byte-UTF-Kodierung utf8mb4 unterstützt werden. Ein Zeichen kann mehr Zeichensätze und mehr Emoticons unterstützen.

utf8mb4 ist mit utf8 kompatibel und kann mehr Zeichen darstellen als utf8. Es ist eine Obermenge des utf8-Zeichensatzes. Daher setzen einige neue Unternehmen, wie z. B. ISO, den Zeichensatz der MySQL-Datenbank auf utf8mb4.

Als ich heute eine Bewerbungsanforderung bearbeitete, stieß ich auf folgendes Problem:

Die beste Möglichkeit zur Anpassung besteht natürlich darin, den Zeichensatz der MySQL-Datenbank auf der Clientseite auf utf8mb4 zu ändern. Dies führt jedoch zu zahlreichen Änderungen. Wenn ein Teil des Clients auf utf8 und ein Teil auf utf8mb4 geändert wird, kann es leicht zu Verwirrung kommen.

Nach mehreren Tests wurde die Zeichensatzkonfiguration in my.cnf der MySQL-Datenbank auf folgende Konfiguration geändert:

[Kunde] 
Standardzeichensatz = utf8mb4 
 
[mysqld] 
Zeichensatzserver = utf8mb4 
Sortierserver = utf8mb4_unicode_ci 
init_connect = "Namen festlegen utf8mb4" 
Zeichensatz-Client-Handshake überspringen = wahr 
 
[mysql] 
Standardzeichensatz = utf8mb4

Empfehlungen zur Verwendung von MySQL-Zeichensätzen

• Versuchen Sie beim Erstellen einer Datenbank/Tabelle und beim Durchführen von Datenbankoperationen, den zu verwendenden Zeichensatz explizit anzugeben, anstatt sich auf die MySQL-Standardeinstellungen zu verlassen. Andernfalls kann es beim Upgrade von MySQL zu großen Problemen kommen.

• Obwohl die Zeichenverzerrungen in den meisten Fällen behoben werden können, wenn sowohl die Datenbank als auch der Verbindungszeichensatz Latin1 verwenden, besteht der Nachteil darin, dass SQL-Operationen nicht in Zeicheneinheiten ausgeführt werden können. Im Allgemeinen ist es besser, sowohl den Datenbank- als auch den Verbindungszeichensatz auf UTF8 einzustellen.

• Wenn Sie die mysql C API verwenden, setzen Sie das Attribut MYSQL_SET_CHARSET_NAME mit mysql_options sofort nach dem Initialisieren des Datenbank-Handles auf utf8. Auf diese Weise müssen Sie den Verbindungszeichensatz nicht explizit mit der SET NAMES-Anweisung angeben, und wenn Sie mysql_ping verwenden, um eine lange unterbrochene Verbindung wiederherzustellen, wird der Verbindungszeichensatz ebenfalls auf utf8 zurückgesetzt.

• Bei MySQL PHP API ist die Gesamtlaufzeit von PHP-Programmen auf Seitenebene im Allgemeinen kurz. Nach dem Herstellen einer Verbindung mit der Datenbank können Sie den Verbindungszeichensatz einmal explizit mit der Anweisung SET NAMES festlegen. Achten Sie bei langen Verbindungen jedoch darauf, die Verbindung offen zu halten, und verwenden Sie die Anweisung SET NAMES, um den Verbindungszeichensatz nach dem Trennen und erneuten Herstellen explizit zurückzusetzen.

Umfassendes Verständnis des Unterschieds zwischen utf8 und utf8mb4 in MySQL: https://www.jb51.net/article/90037.htm

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Schritte zum Ändern des MySQL-Zeichensatzes auf UTF8 unter Linux
  • Beispiel für utf8mb4-Sortierung in MySQL
  • MySQL-Kodierung utf8 und utf8mb4 utf8mb4_unicode_ci und utf8mb4_general_ci
  • So ändern Sie die Kodierung der MySQL-Datenbank in utf8mb4
  • mysql charset=utf8 verstehen Sie wirklich, was es bedeutet
  • mysql verstümmelte Zeichen Latin1-Zeichen in UTF8-Details konvertiert

<<:  Detaillierte Erläuterung der praktischen Anwendung der Centos7 ESXi6.7-Vorlage

>>:  Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion

Artikel empfehlen

Zwei Implementierungslösungen für die Vuex-Datenpersistenz

Inhaltsverzeichnis Geschäftsanforderungen: Lösung...

So scrollen Sie manuell durch Protokolle im Linux-System

Die Protokollrotation ist eine sehr gängige Funkt...

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...

Zusammenfassung von 10 erstaunlichen Tricks von Element-UI

Inhaltsverzeichnis el-scrollbar Bildlaufleiste el...

Flussdiagramm für den Webserverzugriff auf HTTP und HTTP-Zusammenarbeit

Ein Webserver kann mehrere Websites mit unabhängi...

Implementierung eines einfachen Karussells auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Implementierung des Markdown-Renderings in einer Vue-Einzelseitenanwendung

Beim Rendern von Markdown habe ich zuvor den Vors...

CentOS-Methode zum Ändern der Standard-SSH-Portnummer – Beispiel

Die Standard-SSH-Portnummer von Linux-Servern ist...

14 praktische Erfahrungen zur Reduzierung von SCSS-Code um 50 %

Vorwort Sass ist eine Erweiterung der CSS3-Sprach...

Verwenden von Vue zum Implementieren einer Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Lösung für das MySQL-Fehlerproblem 1045 (28000)

Ich bin auf den MySQL-FEHLER 1045 gestoßen und ha...

Einführung in die grundlegenden Konzepte und Technologien der Webentwicklung

Heute stellt dieser Artikel Anfängern einige grun...

Fallstricke bei langsamen MySQL-Abfragen

Inhaltsverzeichnis 1. Langsame Abfragekonfigurati...