UTF-8 (Unicode-Transformationsformat-8) ist eine Codierungsmethode für variable Länge, die alle Zeichen im Unicode-Zeichensatz darstellen und 1 Bytespeicher für englische Zeichen und 2 bis 4 Bytespeicher für andere Zeichen verwendet. Sein Vorteil ist, dass es in Sprachen und Symbolen in verschiedenen Ländern auf der ganzen Welt einheitlich ausgedrückt werden kann und mit der ASCII -Codierung kompatibel ist und in der Webentwicklung und in der Datenbankspeicherung häufig verwendet wird.
In PHP wird die UTF-8-Codierung häufig verwendet, um den Datenaustausch und Speicher mehrsprachiger Websites zu verarbeiten, insbesondere wenn Daten zwischen einer Datenbank und einem Browser übertragen werden. Wenn die Codierung nicht korrekt eingestellt ist, ist es einfach, Probleme mit verstümmeltem Code zu verursachen.
Wenn Sie in PHP eine MySQL-Datenbank verwenden und die MySQLI- Erweiterung verwenden, um die Datenbank zu verbinden und zu betreiben, ist es sehr wichtig, dass die Datenbankverbindung die UTF-8-Codierung verwendet. Andernfalls, selbst wenn Ihre Datenbanktabellen und Felder mit UTF-8-Codierung festgelegt werden, können während der Datenübertragung aufgrund der Codierungsfehlanpassung immer noch Probleme mit der Datenübertragung auftreten.
Mit der MySQLI :: Set_Charset -Methode können Sie einen Zeichensatz für die aktuelle Datenbankverbindung festlegen. Durch das Festlegen des auf UTF-8 eingestellten Zeichens wird sichergestellt, dass die PHP- und MySQL-Datenbank während der Datenabfrage und des Insertion korrekt codiert und dekodiert werden kann.
Erstellen Sie eine Datenbankverbindung:
Verwenden Sie die Methode MySQLI_Connect oder New MySQLI (), um eine Verbindung zur Datenbank herzustellen.
Set Zeichensatz:
Verwenden Sie nach der erfolgreichen Verbindung zur Datenbank die Methode MySQLI :: SET_CHARSET, um den Zeichen auf UTF-8 festzulegen.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 1. Erstellen Sie eine Datenbankverbindung</span></span><span>
</span><span><span class="hljs-variable">$host</span></span><span> = </span><span><span class="hljs-string">'localhost'</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">'your_database'</span></span><span>;
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$host</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Verbindung ist fehlgeschlagen: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// 2. Stellen Sie den Zeichen auf UTF-8</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8"</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fehler: Zeichensatz kann nicht festgelegt werden UTF-8: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->error;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktueller Zeichensatz: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
}
</span><span><span class="hljs-comment">// 3. Führen Sie Abfragen und andere Operationen durch</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM your_table"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>->num_rows > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">while</span></span><span>(</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Daten: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'column_name'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"没有Daten"</span></span><span>;
}
</span><span><span class="hljs-comment">// 4. Schließen Sie die Verbindung</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span> Datenbankverbindung:
Eine Datenbankverbindung wurde mit neuem MySQLI () erstellt und überprüft, ob die Verbindung erfolgreich war. Wenn die Verbindung fehlschlägt, wird das Programm über Die () beendet und eine Fehlermeldung angezeigt.
Set Zeichensatz:
Verwenden Sie $ conn-> set_charset ("utf8"), um den Verbindungszeichen auf UTF-8 festzulegen. Zu diesem Zeitpunkt werden alle Datenübertragungen zwischen PHP- und MySQL-Datenbanken mit UTF-8 codiert. Wenn die Einstellung fehlschlägt, können Sie die Fehlermeldung über $ conn-> fehler ausgeben.
Führen Sie die Abfrage aus:
Abfragen Sie die Daten in Ihrer Tabelle in Your_table , um sicherzustellen, dass die zurückgegebenen Daten UTF-8-codierte Zeichen korrekt anzeigen können.
Schließen Sie die Verbindung:
Schließlich schließen Sie die Datenbankverbindung mit $ conn-> close () .
Zeichensatz von Datenbanktabellen:
Zusätzlich zum Einstellen des in PHP eingestellten Zeichens müssen Sie auch sicherstellen, dass die Zeichensätze von Datenbanktabellen und Feldern auch UTF-8 sind. Sie können den Zeichensatz einer Tabelle über die Tabelle erstellen oder den Zeichensatz einer Tabelle durch die folgende SQL -Anweisung ändern:
<span><span><span class="hljs-keyword">ALTER</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> your_table </span><span><span class="hljs-keyword">CONVERT</span></span><span> </span><span><span class="hljs-keyword">TO</span></span><span> </span><span><span class="hljs-type">CHARACTER</span></span><span> </span><span><span class="hljs-keyword">SET</span></span><span> utf8 </span><span><span class="hljs-keyword">COLLATE</span></span><span> utf8_general_ci;
</span></span> Browser -Codierung:
Stellen Sie sicher, dass der richtige Zeichensatz im <kopf> -Tag der HTML -Seite festgelegt ist, um verstümmelte Code aus dem Browser zu vermeiden. Normalerweise können die folgenden Tag -Einstellungen verwendet werden:
<span><span><span class="hljs-tag"><<span class="hljs-name">meta</span></span></span><span> </span><span><span class="hljs-attr">charset</span></span><span>=</span><span><span class="hljs-string">"UTF-8"</span></span><span>>
</span></span> MySQL Server Standard Zeichensatz:
Wenn Sie möchten, dass der MySQL-Server standardmäßig die UTF-8-Codierung verwendet, können Sie ihn in der MySQL-Konfigurationsdatei my.cnf oder my.ini festlegen:
<span><span><span class="hljs-section">[mysqld]</span></span><span>
</span><span><span class="hljs-attr">character-set-server</span></span><span> = utf8
</span><span><span class="hljs-attr">collation-server</span></span><span> = utf8_general_ci
</span></span>Das Einrichten von UTF-8-Codierung mit MySQLI :: set_Charset ist ein wichtiger Schritt, um sicherzustellen, dass mehrsprachige Daten zwischen PHP- und MySQL-Datenbanken ordnungsgemäß verarbeitet werden. Durch korrektes Konfigurieren des Zeichensatzes können nicht nur verstümmelte Codeprobleme vermieden werden, sondern auch sicherstellen, dass die Daten während der Übertragung nicht verloren gehen oder sonstigen. Stellen Sie sicher, dass die Zeichensätze von Datenbanktabellen und Feldern ebenfalls UTF-8 sind, so dass konsistente Codierungseinstellungen in der gesamten Anwendung beibehalten werden können, wodurch die Projektkompatibilität und Skalierbarkeit verbessert werden.
Verwandte Tags:
mysqli