close

Wie ein Assimil Kurs verwenden

Wir liefen in eine interessante Codierung Problem MySQL-Zeichen heute während der Arbeit eine neue Client-Seite zu aktualisieren und zu starten.

Hier ist, was wir tun wollten: die Produktionsdatenbank in den Staging-Datenbank kopieren und so konnten wir richtig konfigurieren und alles testen, bevor die neue Website Live schieben. Ziemlich einfach nicht wahr? Es war, bis wir eine Reihe von seltsamen Zeichencodierung Probleme auf dem Staging-Website bemerkt.

Es stellte sich heraus, dass, während die Datenbanktabellen zu einem Latin-1 (latin1) eingestellt wurden, die Inhalte, die diese Tabellen bevölkert wurde als UTF-8 (UTF-8) kodiert. Eine Vielzahl von Versuchen, dies zu beheben, schlug fehl, doch was es gelungen war wie folgt:

    Exportieren Sie die Daten als Latin-1. Da MySQL weiß, dass die Tabelle bereits einen Latin-1 Codierung verwendet, wird es eine gerade Export der Daten zu tun, ohne zu versuchen, die Daten zu einem anderen Zeichensatz zu konvertieren. Wenn Sie versuchen, als UTF-8 zu exportieren, wird MySQL zu versuchen, die (angeblich) Latin-1-Daten in UTF-8 zu konvertieren - was doppelt codierte Zeichen (da die Daten eigentlich schon UTF-8). Ändern Sie den Zeichensatz in der exportierten Datendatei von 'latin1' auf 'utf8'. Da die gesicherten Daten nicht während des Exportvorgangs umgewandelt wurde, ist es eigentlich UTF-8 kodierten Daten. Erstellen Sie Ihre neue Tabelle als UTF-8 Wenn Ihr CREATE TABLE-Befehl in der SQL-Dump-Datei ist, ändern Sie den Zeichensatz von 'latin1' auf 'utf8'. Importieren Sie Ihre Daten normalerweise. Da Sie UTF-8 kodierten Daten in Ihrer Dump-Datei haben, ist das erklärte Charakter in der Dump-Datei eingestellt nun UTF-8, und die Tabelle, in die Sie importieren ist UTF-8, alles glatt geht.

Ich kann bestätigen, dass ein halbes Dutzend oder so Variationen der oben nicht funktionieren. Dazu gehören INSERT INTO * FROM olddb.oldtable newdb.newtable SELECT ;.

Auch, wenn Sie sind dies für eine Website zu tun (wie wir), bedenken Sie, dass über die Produktionsdatenbank zu kopieren allgemein bedeutet, dass WP-Cache aktiviert ist. Sie werden sich erinnern wollen, dass auszuschalten. Ja. 😉�

    Dies ist ein recht häufiges Problem bei älteren Wordpress installiert, da die Standard MySQL-Datenbank ist in der Regel Latin-1, und ältere Versionen von Wordpress nicht angeben, den Zeichensatz, wenn die Datenbanktabellen zu schaffen (so würden sie auf Latin-1 Standard) und dem Standard Codierung in den Wordpress-Einstellungen ist UTF-8. []

Spanisch lernen 2 Monate     Spanisch lernen 150 spanische Sätze für Anfänger


TAGS


CATEGORIES

.