yalst-Kauflösungen auf UTF-8 umstellen
Wenn Sie Ihre yalst-Kauflösung nicht bereits bei der Installation für UTF-8 konfiguriert haben oder Ihre Installation recht alt ist, nutzen Sie wahrscheinlich noch den sogenannten Latin1-Zeichensatz. Der Zeichensatz wird für die Ausgabe der webbasierten yalst-Seiten sowie zum Speichern Ihrer Daten in der Datenbank verwendet.
Heutzutage ist die Nutzung von „Latin1“ nicht mehr zeitgemäß, da nur westeuropäische Sonderzeichen dargestellt werden können. Bereits die Verarbeitung kyrillischer Zeichen ist nicht möglich und an komplexere Sprachen wie Chinesisch oder Arabisch ist gar nicht zu denken. Und spätestens im Zeitalter der Emojis braucht man einfach einen Zeichensatz, der wesentlich mehr verschiedene Zeichen darstellen kann. An dieser Stelle kommt Unicode ins Spiel.
In diesem Artikel erläutern wir, wie Sie Ihre yalst-Installation von Latin1 auf Unicode (UTF-8) umstellen können. Für die Codebeispiele hier nehmen wir an, dass Ihre yalst-Datenbank „dbyalst“ heißt (bitte ggf. entsprechend anpassen). Folgende Schritte sind erforderlich:
- Machen Sie bitte ein Backup Ihrer yalst-Datenbank. Falls bei der Umstellung irgendetwas schiefläuft, können Sie damit zum bisherigen Zustand zurückkehren.
- Bringen Sie yalst in den Wartungsmodus. Damit ist sichergestellt, dass sich die Datenbank während der Umstellung nicht ändert. Den Wartungsmodus aktivieren Sie, indem Sie im Admin-Abschnitt Ihrer Datei yalst/data/config.ini die Zeile
1maintenance = true - Die folgenden Schritte führen wir im Linux-Terminal durch, weil hier auch große Datenbanken problemlos verarbeitet werden können. Wir haben das für unsere eigenen Systeme schon im zweistelligen Gigabyte-Bereich durchgeführt. Für kleinere Datenbanken könnte ersatzweise auch ein leistungsfähiger Editor verwendet werden.
- Zuerst benötigen wir einen sogenannten Dump der aktuellen Datenbank:
1mysqldump --default-character-set=latin1 --add-drop-table -u root -p dbyalst > dump.sql - Nun müssen wir die Anweisungen, die Latin1-Tabellen erzeugen, gegen Anweisungen ersetzen, die Unicode-Tabellen erzeugen. Außerdem muss die Textdatei selber ins Unicode-Format gebracht werden. Das kann man wie folgt kombinieren:
1cat dump.sql | sed -e 's/CHARSET\=latin1/CHARSET\=utf8\ COLLATE\=utf8_general_ci/g' | iconv -f latin1 -t utf8 > dump.utf8.sql - Stellen Sie Ihre Datenbank auf die Kollation „utf8_general_ci“ um. Dieser Schritt kann z.B. bequem mit Werkzeugen wie „phpMyAdmin“ erledigt werden.
- Nun schreiben wir den modifizierten Dump als neue Datenbank zurück (denken Sie zuvor bitte nochmals an das Backup aus Schritt 1!):
1mysql -u root -p dbyalst < dump.utf8.sql - Fügen Sie nun folgende Zeile in den Admin-Abschnitt Ihrer Datei yalst/data/config.ini hinzu:
1charset = "UTF-8"
1maintenance = false
Prüfen Sie bitte in Ihrer yalst-Installation, ob alle Texte, alte Chats usw. noch korrekt dargestellt werden. Starten Sie bitte auch einen Test-Chat und verwenden Sie dort ein paar Emojis. Wenn alles korrekt funktioniert, ist die Umstellung abgeschlossen.
Da wir selber nur noch Unicode-Installationen betreiben, möchten wir an dieser Stelle darauf hinweisen, dass wir Installationen mit anderen Zeichensätzen bezüglich möglicher Zeichensatz-Probleme ab sofort nicht mehr supporten.