Hi zusammen,
ich habe hier noch eine "alte" Datenbank, welche ich gerne von Latin1 auf UTF-8 umstellen will. Gleichzeitig soll ein Wechsel von MyISAM auf INNO-DB erfolgen. Letzteres ist aber sekundär.
Nur zur Konvertierung ...
Normalerweise wird MySQL nur mitgeteilt, dass die Datenbank UTF8 konform arbeiten soll. Das gleiche entsprechend auch mit den Tabellen und den Text/String-Feldern.
Für die Verbindung wird UTF8 definiert. Standard bisher: Latin-1
Die Ausgabe an den Browser wird auf UTF8 umgestellt.
So funktioniert es "normalerweise". oder?
Nun mein spezieller Fall:
Das Projekt ist schon was älter. Sehr viel älter. Die Datenbank ist immer noch MyISAM-Latin-1.
Allerdings war das Projekt schon auf Mehrsprachigkeit bzgl der Eingaben ausgelegt. D.h. der Browser schiebt UTF8 raus und nimmt diese an.
Ein Eintrag in einem Textfeld war also bereits UTF-8 konform.
Nun das entscheidende .. Die Daten wurden 1:1 als UTF8 in die Latin-1 Datenbank geschrieben. Soweit ja kein Problem. Ausser, dass die doppelte Menge Speicherplatz verbraucht wurde.
Wenn ich nun aber die standardisierte Form der Konvertierung der DB von Latin-1 auf UTF8 anwende, zerreißt es ja dennoch die angelegten Daten. Denn jedes Zeichen wird von Latin-1 auf UTF8 konvertiert. Aber es sind 2-Byte-Zeichen (UTF8 Daten in Latin-1 Tabelle) bereits enthalten. Hier wird daher das 1. und das 2. Byte getrennt konvertiert und entsprechend sind die Daten zerrissen.
Hat jemand hierzu eine ideale Lösung?
Gruß
Haxe
ich habe hier noch eine "alte" Datenbank, welche ich gerne von Latin1 auf UTF-8 umstellen will. Gleichzeitig soll ein Wechsel von MyISAM auf INNO-DB erfolgen. Letzteres ist aber sekundär.
Nur zur Konvertierung ...
Normalerweise wird MySQL nur mitgeteilt, dass die Datenbank UTF8 konform arbeiten soll. Das gleiche entsprechend auch mit den Tabellen und den Text/String-Feldern.
Für die Verbindung wird UTF8 definiert. Standard bisher: Latin-1
Die Ausgabe an den Browser wird auf UTF8 umgestellt.
So funktioniert es "normalerweise". oder?
Nun mein spezieller Fall:
Das Projekt ist schon was älter. Sehr viel älter. Die Datenbank ist immer noch MyISAM-Latin-1.
Allerdings war das Projekt schon auf Mehrsprachigkeit bzgl der Eingaben ausgelegt. D.h. der Browser schiebt UTF8 raus und nimmt diese an.
Ein Eintrag in einem Textfeld war also bereits UTF-8 konform.
Nun das entscheidende .. Die Daten wurden 1:1 als UTF8 in die Latin-1 Datenbank geschrieben. Soweit ja kein Problem. Ausser, dass die doppelte Menge Speicherplatz verbraucht wurde.
Wenn ich nun aber die standardisierte Form der Konvertierung der DB von Latin-1 auf UTF8 anwende, zerreißt es ja dennoch die angelegten Daten. Denn jedes Zeichen wird von Latin-1 auf UTF8 konvertiert. Aber es sind 2-Byte-Zeichen (UTF8 Daten in Latin-1 Tabelle) bereits enthalten. Hier wird daher das 1. und das 2. Byte getrennt konvertiert und entsprechend sind die Daten zerrissen.
Hat jemand hierzu eine ideale Lösung?
Gruß
Haxe