War auf dem alten Server demnach die Übertragung zur DB in latin1 und die DB-Tabelle in utf-8?
Wie sehen denn die Umlaute im Dump in einem UTF-8 fähigen Editor aus?
Serverwechsel und nun ein Umlauteproblem mit Typo3
Es gab keine Änderung innerhalb von Typo3. Ich hab nur die DB und alle WebDaten auf das neue System geschoben. Auf dem alten Server läuft es problemlos und auf dem neuen werden die Umlaute halt nicht dargestellt. In der DB steht es im UTF-8. Das heißt z.B.
in der neuen DB steht: für
in der alten DB steht: für
Ich versteh nicht wie das zusätzliche "Ã" in die DB kommt. Hast du oder ihr eine Idee?
Das ist alles andere als UTF-8! Also Dump ziehen und entsprechend bearbeiten, so wie es auf der Seite beschrieben wird, die ich verlinkt habe.
Also z.B. mit ivonv den Dump umwandeln oder eben den Dump importieren und dann mit Jigal´s script die neue DB bearbeiten
Aber auf dem alten Server funktioniert das doch?! Das verstehe ich nicht. Ich kann den ganzen Dump nicht bearbeiten, da es ca. 15mb sind und ich auch nicht mal weiß welche ganzen Sonderzeichen was jetzt darstellen sollen. Okay... würde man sicherlich noch irgendwie rausfinden aber ich denke da ist die Fehlerquote zu hoch! Warum hat typo3 überhaupt so nen Mist in die DB geschrieben?
In der alten Db hast Du mit latin1 übertrage Daten in eine utf-8 Tabelle geschrieben:
in der Datenbank steht für also ein latin1 ü in utf8. Wenn das ausgelesen wird, wird da wieder ein latin1 ü draus und in der Darstellung ist alles gut.
Die Umlaute in der Datenbank sind aber "kaputt".
Das für ist ein für nochmals in utf8 umgewandelt.
Danke für die Erläuterung. Das ist mir mittlerweile klar aber ich weiß nicht wie ich das Problem lösen kann. Kann ich die alte DB irgendwie per dump-umwandeln? Und falls das funktioniert, wie funktioniert es? Hast du eine Idee?
Siehe Link von Normon2k:
http://wiki.typo3.org/UTF-8_support#Convert_an_already_existing_database_to_UTF-8
zB. Possibility 3
abalorio schriebWarum hat typo3 überhaupt so nen Mist in die DB geschrieben?
Weil es von dir, oder wem auch immer, so konfiguriert wurde!
abalorio schriebKann ich die alte DB irgendwie per dump-umwandeln? Und falls das funktioniert, wie funktioniert es? Hast du eine Idee?
Lass mich raten, du hast dir den Link, den ich gepostet hatte, nicht angeguckt oder? PLONK!
marmu schriebSiehe Link von Normon2k:
http://wiki.typo3.org/UTF-8_support#Convert_an_already_existing_database_to_UTF-8zB. Possibility 3
So, ich hab dort jetzt fast alles getestet und was funktioniert ist:
iconv -f UTF-8 -t ISO-8859-1 typo3-alt.sql > dump-iconv.sql
Wenn ich mir die generierten Daten anschaue hab ich tatsächlich wieder ä, ö, ü im Dump. Nun bricht iconv aber leider mit folgender Fehlermeldung ab:
iconv: illegal input sequence at position 7061600
Was kann ich dagegen tun? Vielen Dank noch mal für deine Hilfe - wir kommen voran. 😉
Norman2k schriebLass mich raten, du hast dir den Link, den ich gepostet hatte, nicht angeguckt oder? PLONK!
Natürlich hab ich mir deinen Link angeschaut. Leider führt das MEISTE eben nicht dazu, dass mein Problem gelöst wird. Was hilft ist wie schon gesagt:
iconv -f UTF-8 -t ISO-8859-1 typo3-alt.sql > dump-iconv.sql
Von daher war dein Hinweis schon richtig. Danke! Leider bricht iconv nur bei der Datengenerierung ab :-(
abalorio schriebSo, ich hab dort jetzt fast alles getestet und was funktioniert ist:
iconv -f UTF-8 -t ISO-8859-1 typo3-alt.sql > dump-iconv.sqlWenn ich mir die generierten Daten anschaue hab ich tatsächlich wieder ä, ö, ü im Dump. Nun bricht iconv aber leider mit folgender Fehlermeldung ab:
iconv: illegal input sequence at position 7061600Was kann ich dagegen tun? Vielen Dank noch mal für deine Hilfe - wir kommen voran. 😉
Was steht denn an der Stelle?
Ein Euro-Zeichen vielleicht?
Was sagt
iconv --verbose .....
an der Stelle?
und was macht?
iconv --help
snip:
Output control:
-c omit invalid characters from output
Also, wenn ich folgendes mache läuft er durch:
iconv -f UTF-8 -t ISO-8859-1/TRANSLIT typo3-alt.sql > dump-iconv.sql
Der Dump wird erstellt bzw. umgewundelt. Wenn ich diesen Dump (nun mit Umlauten *freu*) importieren will beschwert sich jedoch mySQL mit folgender Meldung:
ERROR at line 1015: Unknown command '\''.
Dort steht HTML-Quelltext oder z.B. das:
INSERT INTO 'static_countries' VALUE (1,0,'AD','AND',20,39,'Principat d\'Andorra',...
Und wenn es nicht dieser Punkt ist, dass kommen die Inhalte dran. Dort gibt es im HTML schließlich auch diverse \ :-(. Eine Idee?
und was macht?
iconv --help snip: Output control: -c omit invalid characters from output
Also das:
iconv -c -f UTF-8 -t ISO-8859-1 typo3-utf8.sql > dump-iconv.sql
läuft durch und generiert den Dump. Der Dump lässt sich auch in mySQL einspielen ohne Fehlermeldung. Allerdings ist die Seite zerschossen :-( :-/. Diverse Inhalte fehlen oder das Layout haut nicht mehr hin.
abalorio schriebAlso, wenn ich folgendes mache läuft er durch:
iconv -f UTF-8 -t ISO-8859-1/TRANSLIT typo3-alt.sql > dump-iconv.sqlDer Dump wird erstellt bzw. umgewundelt. Wenn ich diesen Dump (nun mit Umlauten *freu*) importieren will beschwert sich jedoch mySQL mit folgender Meldung:
ERROR at line 1015: Unknown command '\''.Dort steht HTML-Quelltext oder z.B. das:
INSERT INTO 'static_countries' VALUE (1,0,'AD','AND',20,39,'Principat d\'Andorra',...Und wenn es nicht dieser Punkt ist, dass kommen die Inhalte dran. Dort gibt es im HTML schließlich auch diverse \ :-(. Eine Idee?
Schon versucht den dump zuteilen und mal Tabellenweise einzuspielen?
-c omit invalid characters from output
steht doch da: läßt ungültige Zeichen aus.
Also langsam nervt mich typo3 wirklich. Okay, nun hab ich mühevoll den Dump mit (anscheinend korrekten Daten) zerteilt und den z.B. erst Tabelle bve_user (dort gibt es jemanden mit 'ö') eingespielt. Prima, funktioniert. Nun den wichtigen Content (Tabelle 'page') und was passiert. Es fehlen ganze Textpassagen. Anscheinend ab dort wo ein '–' war fehlt der Text. Oder eingefügte Tabellen sind nicht mehr zu sehen.
Was kann ich tun? Ich verzweifle gerade damit.
marmu schriebIn der alten Db hast Du mit latin1 übertrage Daten in eine utf-8 Tabelle geschrieben:
in der Datenbank steht für also ein latin1 ü in utf8. Wenn das ausgelesen wird, wird da wieder ein latin1 ü draus und in der Darstellung ist alles gut.
Die Umlaute in der Datenbank sind aber "kaputt".Das für ist ein für nochmals in utf8 umgewandelt.
Gibt es nicht irgendweine Möglichkeit quasi die alte DB mit Inhalt "für" auch wieder auf dem neuen Server wieder einzuspielen? Warum macht mySQL bei einem Dump daraus "für"? Anscheinend funktioniert es ja nicht, den DUMP umzubauen ohne das Texte verschwieden oder die Seiten anschließend fehlerhaft angezeigt werden.
abalorio schriebGibt es nicht irgendweine Möglichkeit quasi die alte DB mit Inhalt "für" auch wieder auf dem neuen Server wieder einzuspielen? Warum macht mySQL bei einem Dump daraus "für"? Anscheinend funktioniert es ja nicht, den DUMP umzubauen ohne das Texte verschwieden oder die Seiten anschließend fehlerhaft angezeigt werden.
Wenn die collation der alten und neuen DB gleich sind, kann das gehn.
Hast Du schon versucht die import/export Funktion von T3 zu nutzen?
hallo abalorio & marmu,
gibt es zu dem beschriebenen Problem von abalorio mittlerweile eine Lösung? Ich führe nämlich wie abalorio folgende iconv Anweisung aus:
iconv -f UTF-8 -t ISO-8859-1 backup.sql > dump-iconv.sql
die mit folgender Fehlermeldung quittiert wird:
iconv: illegal input sequence at position 11144561
Schaue ich in den Dump "dump-iconv.sql" rein (der nur 10 MB groß ist), sehe ich, dass iconv in der Tabelle "cache_hash" hängen geblieben ist. Dort befindet sich ein Datensatz mit einem BLOB-Wert (im Feld content) der nicht verarbeitet wird. Weiß der Geier warum nicht.
Aber ich habe auch mittlerweile keine Idee, wie ich das Problem umgehen kann. Die DB ist in latin1 (für den Dump backup.sql) erzeugt und die Kollation für die Tabellen ist utf8_general_ci.
Hat irgend einer eine Idee? Das tolle Skript db_utf8_fix.php, das sich unter http://wiki.typo3.org/UTF-8_support findet, bleibt leider bei der Tabelle sys_log hängen... #angry#
Hallo rob-master,
leer vor dem Erstellen des Dumps die Tabelle cache_hash einfach aus. Das sind temporär-Daten, die sowieso neu geschrieben werden. Dito cache_extensions ... dadurch wird der Dump vermutlich auch schön handlich klein.
(Ausleeren, nicht löschen! Truncate ... Die Tabellen brauchts schon ...)
Peter, TYPO3 @ lisardo (Augsburg)
Hallo ilsardo,
danke für deinen schnellen Hinweis!!!
Also ich habe nun mal vor der Dump-Erstellung die Tabellen cache_extensions und cache_hash geleert und danach den Dump erstellt. Mit der iconv Anweisung danach wieder die Konvertierung angestoßen:
iconv -f UTF-8 -t iso-8859-1 db216246_41_2.sql > dump-iconv.sql
und als Ergebnis kommt wieder: iconv: illegal input sequence at position 311069 #paralyzed#
Wenn ich mir den unfertigen Dump ansehe, dann ist iconv anscheinend diesmal in der cache_pages Tabelle hängen geblieben und das bereits beim zweiten INSERT Statement. Allerdings ist an der Abbruchstelle noch nicht mal ein Sonderzeichen zu sehen. Mir ist das völlig schleierhaft...
Hat noch jemand einen heißen Tipp?