Mailinglisten-Archive |
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