Das MySQL-Datenbankverwaltungssystem unterstützt ab Version 4.1 das Arbeiten mit Codierungen. Die Hauptprobleme bei ihnen treten auf, wenn eine Datenbank mit PHP verbunden wird. In diesem Fall müssen die Codierung des Inhalts der Basis und der Verbindung übereinstimmen.
Anweisungen
Schritt 1
Beachten Sie, dass eine häufige Ursache für Mysql-Probleme darin besteht, dass die Standardcodierung für Datenbanken auf latein1 gesetzt ist. Die meisten verbundenen Clients sind auch dafür konfiguriert, Sie geben Daten ein und sehen sich die Ergebnisse auch damit an. Obwohl diese Codierung das kyrillische Alphabet korrekt wiedergibt, entsprechen die Codes der darin enthaltenen Symboltabelle nicht den echten kyrillischen Zeichen. Daher kann das Durchsuchen und Sortieren von Daten zu völlig unvorhersehbaren Ergebnissen führen.
Schritt 2
Ändern Sie die Datenbankcodierung in eine, die kyrillische Zeichen korrekt anzeigt, z. B. utf-8 oder cp1251. Konvertieren Sie dazu die Daten von der Latin1-Kodierung in cp1251. Verwenden Sie keine einfache Datenkonvertierung, da die Zeichencodes falsch sind. Daher müssen Sie ihre Codierungsbindung loswerden. Konvertieren Sie dazu den Daten- und Zeichentyp in binäre Daten. Verwenden Sie die Abfrage Alter table "Tabellennamen eingeben" t1 change c1 c1 blob.
Schritt 3
Führen Sie eine Abfrage aus, um die Kodierung der Mysql-Datenbank zu ändern, verwenden Sie dazu das folgende Beispiel: Alter table "Geben Sie den Tabellennamen ein" t1 change c1 c1 text chatacter set "Geben Sie den Namen der gewünschten Kodierung ein, zum Beispiel cp1251". Nicht ein einziges Datenbyte wird physikalisch verändert, aber die Regel der Zeichenbildung ändert sich. Anschließend können Sie zum Ändern der Datenbankcodierung eine einfache Datenkonvertierungsabfrage verwenden.
Schritt 4
Bitte beachten Sie, dass Sie beim Ändern von Tabellencodierungen in einem Feld, das Indizes enthält, diese löschen und neu erstellen müssen, d.h. in allen Datenbanktabellen neu aufbauen. Stellen Sie beim Wechsel zur Codierung sicher, dass visuelle Clients Unicode unterstützen. Beispielsweise zeigt der SQLyog-Client fälschlicherweise den Inhalt von Tabellen an, die Daten in UTF-8-Codierung speichern.