Konvertieren einer MySQL Datenbank ins UTF-8 Unicode Format

8 04 2007

Bisher lief meine Datenbank im latin1_swedish_ci Format, welches als Standard bei MySQL definiert ist, wenn man keine eigenen Einstellungen vornimmt. Nun wollte ich diese auf das universelle UTF-8 Format umstellen. Eine wichtige Quelle hierfür stellt das Kapitel Zeichensatz-Unterstützung in der MySQL Dokumentation dar.

Als ersten Schritt muss die Datenbank an sich umgestellt werden. Das geht noch ganz einfach mit diesem Befehl:

ALTER DATABASE `[DB-Name]` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

Nun geht es aber darum, auch die einzelnen Felder zu konvertieren. Das kann man umständlich per Hand tun. Da es aber scheinbar keine geeignete Methode gibt, alle Felder auf einmal umzustellen und ich keine Lust hatte mehrere hundert SQL Befehle von Hand zu tippen habe ich mir ein kleines PHP Skript erstellt. Dieses ist sicherlich nicht der Weisheit letzter Schluss, tut aber seinen Dienst.


Hiermit sollte eine Liste mit SQL Befehlen ausgegeben werden, die zum Einen sämtliche Felder, die nicht im UTF-8 Format vorliegen ins UTF-8 Unicode Format konvertiert, zusätzlich aber auch die Standardeinstellungen für die Tabellen anpasst.

Zusätzlich muss der Webseite noch mitgeteilt werden, dass diese jetzt UTF-8 verwendet. Dies erreicht man mit dem folgenden Meta-Tag:


Um die MySQL Verbindung ebenfalls umzustellen, sollte in Skripten direkt nach dem Connect dieses Statement abgesetzt werden:

SET NAMES "utf8"

Bei mir sieht das im PHP so aus:

mysql_query('SET NAMES "utf8"') or die ("Kann den Zeichensatz nicht auf utf-8 stellen");
Advertisements

Aktionen

Information

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: