Bei der Verwendung von MySQL -Datenbanken ist die Auswahl der Zeichensätze sehr wichtig, insbesondere wenn es sich um mehrsprachige Inhalte handelt oder Sonderzeichen wie Emoji speichert. MySQL liefert eine Vielzahl von Charaktersätzen, unter denen UTF-8 und UTF-8MB4 die beiden am häufigsten verwendeten sind. Durch die MySQLI -Erweiterung von PHP können wir den von der aktuellen Verbindung verwendeten Zeichensatz über die Funktion von MySQLI :: get_chars erhalten und den entsprechenden Zeichensatz auswählen, um verschiedene Anforderungen zu unterstützen. In diesem Artikel wird erläutert, wie UTF-8 und UTF-8MB4-Zeichen durch die MySQLI :: Get_Charset -Funktion unterstützt werden.
Zunächst müssen wir den Unterschied zwischen UTF-8 und UTF-8MB4 verstehen:
UTF-8 : ist eine Zeichencodierung mit variabler Länge, die alle Zeichen im Unicode-Zeichensatz darstellen kann. UTF-8 verwendet 1 bis 4 Bytes, um Zeichen zu codieren, unterstützt jedoch keine 4 Byte-Zeichen (wie Emoji).
UTF-8MB4 : ist eine Variante von UTF-8, die 4-Byte-Zeichen unterstützt, was bedeutet, dass sie Emoji und andere erweiterte Unicode-Zeichen korrekt speichern können.
Wenn Ihre Anwendung Emoji oder andere Unicode-Zeichen unterstützen muss, sollten Sie UTF-8MB4 verwenden.
In PHP können Sie die MySQLI :: Get_Charset -Methode verwenden, um den Zeichensatz der aktuellen MySQL -Verbindung zu erhalten. Stellen Sie zunächst sicher, dass Ihre MySQL-Verbindung ordnungsgemäß so konfiguriert ist, dass sie UTF-8 oder UTF-8MB4 verwenden können.
<?php
// erstellen MySQL verbinden
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
// 检查verbinden是否成功
if ($mysqli->connect_error) {
die("verbinden失败: " . $mysqli->connect_error);
}
// 获取当前verbinden的字符集
$current_charset = $mysqli->get_charset();
// Ausgabe des aktuellen Zeichensatzes
echo "Aktueller Zeichensatz: " . $current_charset->charset;
// 关闭verbinden
$mysqli->close();
?>
In diesem Beispiel erstellen wir eine Verbindung zur MySQL -Datenbank und verwenden die Methode get_charset , um den Zeichensatz der aktuellen Verbindung zu erhalten. Der Name des Ausgabesschilds wird uns mitgeteilt, ob UTF-8 oder UTF-8MB4 derzeit verwendet wird.
Wenn Sie UTF-8 oder UTF-8MB4 verwenden möchten, wenn Sie eine Verbindung zur Datenbank herstellen, können Sie das Zeichen über die Methode set_charset einstellen. Beispielsweise zeigt der folgende Code, wie der angeschlossene Zeichen auf UTF-8MB4 festgelegt wird.
<?php
// erstellen MySQL verbinden
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
// 检查verbinden是否成功
if ($mysqli->connect_error) {
die("verbinden失败: " . $mysqli->connect_error);
}
// Stellen Sie den Zeichen auf UTF-8mb4
if (!$mysqli->set_charset("utf8mb4")) {
echo "Fehler: Zeichensatz kann nicht festgelegt werden:" . $mysqli->error;
} else {
echo "Das Zeichensatz ist auf eingestellt: utf8mb4";
}
// 关闭verbinden
$mysqli->close();
?>
In diesem Beispiel verwenden wir die Methode set_charset ("utf8mb4"), um den Zeichensatz der MySQL-Verbindung auf UTF-8MB4 festzulegen. Auf diese Weise können wir sicherstellen, dass die Verbindung ein UTF-8MB4-Zeichensatz verwendet, das mehr Unicode-Zeichen unterstützt.
Während das UTF-8MB4-Zeichensatz eine breitere Palette von Charakter-Sets unterstützt, können Sie manchmal Kompatibilitätsprobleme in älteren Versionen von MySQL- oder PHP-Umgebungen auftreten. In einigen älteren MySQL-Versionen wird beispielsweise der UTF-8MB4-Zeichensatz möglicherweise nicht direkt unterstützt. In diesem Fall können Sie in Betracht ziehen, MySQL zu aktualisieren oder eine andere Zeichensatzeinstellungsmethode zu verwenden, um sicherzustellen, dass der Zeichenspeicher korrekt ist.
Mit der Funktion von MySQLi :: get_charset können Sie den Zeichensatz der aktuellen MySQL -Verbindung problemlos abrufen und den entsprechenden Zeichen für die Methode set_charset nach Bedarf auswählen. Für Anforderungen, die eine breitere Palette von Unicode-Zeichen und Emojis unterstützen, wird der UTF-8MB4-Zeichensatz empfohlen. Durch die ordnungsgemäße Konfiguration des Charaktersatzes in der Anwendung können Probleme und Zuverlässigkeit der Anwendungskompatibilität und Zuverlässigkeit verbessert werden.