Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Probleme mit dem MySQL-Zeichensatz (Bild)

Detaillierte Erläuterung der Probleme mit dem MySQL-Zeichensatz (Bild)

黄舟
黄舟Original
2017-03-18 14:34:491286Durchsuche

Kürzlich musste ein altes Projekt des Unternehmens Emoji-Ausdrücke unterstützen. Zuerst dachte ich, es würde nur darum gehen, die Tabellenfelder in der Datenbank zu ändern, aber unerwartet verursachte es eine Reihe von Problemen. Fassen Sie es hier zur Erinnerung zusammen.

01 MySQL ZeichensatzEinstellungen

Detaillierte Erläuterung der Probleme mit dem MySQL-Zeichensatz (Bild)

character_set_server: Standardmäßiger interner Betriebszeichensatz
character_set_client: Von Client-Quelldaten verwendeter Zeichensatz
character_set_connection: Zeichensatz der Verbindungsschicht
character_set_results: Abfrageergebnis Zeichensatz
character_set_database: Standardzeichensatz der aktuell ausgewählten Datenbank
character_set_system: Systemmetadaten (Feldnamen usw.) Zeichensatz

02 Zeichensatzkonvertierungsprozess in MySQL

  • MySQL Server konvertiert die Anforderungsdaten von character_set_client nach character_set_connection, wenn die Anforderung empfangen wird.

  • konvertiert die Anforderungsdaten von character_set_connection, bevor interne Vorgänge ausgeführt werden ist ein interner Betriebszeichensatz und seine Bestimmungsmethode ist wie folgt:

    • Verwenden Sie den CHARACTER SET-Einstellungswert des Feldes in der Tabelle; 🎜>

      Wenn der oben genannte Wert nicht vorhanden ist, verwenden Sie den Einstellungswert DEFAULT CHARACTER SET der entsprechenden Datentabelle (MySQL-Erweiterung, Nicht-SQL-Standard);
    • Wenn der Der obige Wert ist nicht vorhanden. Verwenden Sie den Einstellungswert DEFAULT des entsprechenden Datenbank-CHARAKTERSATZes.
    • wandelt das Operationsergebnis als Antwort auf die Anfrage vom internen Operationszeichensatz in
    • um.

      character_set_server

    • 03 MySQL-Start
    Konfigurationsdatei
  • my.cnf

    character_set_results

default-character-set: MySQL-Befehl festlegen Standardzeichensatz für Leitungsverbindungen

Character-Set-Server: Legen Sie den internen Betriebszeichensatz des Systems fest (d. h. den oben genannten Character_set_server)Collation_server: Legen Sie die Standard-Zeichensatzsortierung des Systems fest

04 PHP-Verbindung MySQL (am Beispiel der PDO-Verbindungsmethode)

Detaillierte Erläuterung der Probleme mit dem MySQL-Zeichensatz (Bild)Zwei gängige Methoden zum Festlegen des Zeichensatzes



mysql:host=localhost;dbname=db_demo;charset=utf8mb4

PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"

  • 05 Zusammenfassung

  • Daten Der Zeichensatz des Tabellenfelds muss

    sein. Dies ist lediglich erforderlich:

Im Allgemeinen sind die Zeichensätze von

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Probleme mit dem MySQL-Zeichensatz (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn