phpbar.de logo

Mailinglisten-Archive

[php] [1/2 OT] MySQL Datenbank von iso-8859-1 in utf-8 umwandeln

[php] [1/2 OT] MySQL Datenbank von iso-8859-1 in utf-8 umwandeln

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Fre Apr 29 12:47:06 CEST 2005


Hi Ralf,

Ralf Eggert schrieb:
> ich stehe vor einem kleinen Problem mit den Zeichensätzen. Derzeit
> liegen alle Daten in der MySQL Datenbank (Version 4.0.20-standard) in
> iso-8859-1 vor. Diese möchte ich nun komplett in utf-8 umwandeln. Ich
> möchte nämlich den Amazon WebService nutzen und der liefert alle Daten
> in utf-8. Da ich aber auf der gleichen Seite auch Inhalte aus meiner
> Datenbank anzeigen möchte, stehe ich nun vor einem Problem.
>
> Ich weiss, dass ich mit utf8_decode() bzw. utf8_encode() arbeiten
> könnte, um die Daten aus der einen (MySQL) oder der anderen Quelle
> (Amazon) bei der Seitenausgabe umzuwandeln.
>
> Ich könnte mir aber vorstellen, dass es vielleicht sinnvoller wäre, die
> gesamten MySQL Datenbankinhalte in utf-8 umzuwandeln. Die Frage ist nur,
> ob dies geht und, wenn ja, wie das geht.

mache mit phpMyAdmin einen Dump Deiner existierenden Datenbankstruktur
ohne Daten. Lege eine neue Datenbank an. Importiere die Tabellenstruktur
in die Datenbank. Lege für die Datenbank den neuen Zeichensatz fest:

     http://dev.mysql.com/doc/mysql/en/alter-database.html

Prüfe anschließend, ob auch die importierten Tabellen den richtigen
Zeichensatz haben.

Anschließend schreibst Du ein kleines PHP-Skript, welches die Daten aus
der einen Datenbank in die andere kopiert. Die UTF8-Umwandlung läßt Du
dabei direkt von MySQL mit der Funktion CONVERT() erledigen:

     http://dev.mysql.com/doc/mysql/en/charset-convert.html


Abschließend solltest Du dann in der neuen Datenbank prüfen, ob bei
auto_increment-Feldern und Timestamp-Feldern, die normalerweise
automatisch gesetzt werden, die Einträge korrekt übernommen worden sind.


Viele Grüße

Lutz


php::bar PHP Wiki   -   Listenarchive