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?
Serverwechsel und nun ein Umlauteproblem mit Typo3
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?
Nein, leider habe ich keine Lösung für mein Problem. Ich hab mittlerweile die korrekten Daten in der DB aber die Darstellung funktioniert noch immer nicht. Hatte leider auch keine Zeit mich weiter darum zu kümmern. Bin jetzt wieder dran...
Hey, ich hab nun fast alles probiert und bisher hat kein Lösungsansatz funktioniert. Hat jemand noch eine Idee? Foglendes ist bisher passiert:
DB-Einstellung von mySQL:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database utf8_general_ci
collation_server utf8_general_ci
die einzelnen Tabellen laufen ebenfalls auf utf8_general_ci.
In der Config von typo3 steht nun folgendes:
<?php
$TYPO3_CONF_VARS['SYS']['sitename'] = 'New TYPO3 site';
$TYPO3_CONF_VARS['BE']['installToolPassword'] = 'xxx';
$TYPO3_CONF_VARS['EXT']['extList'] = 'tsconfig_help,context_help,extra_page_cm_options,impexp,sys_note,tstemplate,tstemplate_ceditor
,tstemplate_info,tstemplate_objbrowser,tstemplate_analyzer,func_wizards,wizard_crpages,wizard_sortpages,lowlevel,install,belog,beuse
r,aboutmodules,setup,taskcenter,info_pagetsconfig,viewpage,rtehtmlarea,css_styled_content,t3skin';
$typo_db_extTableDef_script = 'extTables.php';
## INSTALL SCRIPT EDIT POINT TOKEN - all lines after this points may be changed by the install script!
$typo_db_username = 'db_user'; // Modified or inserted by TYPO3 Install Tool.
$typo_db_password = 'db_pass'; // Modified or inserted by TYPO3 Install Tool.
$typo_db_host = 'localhost'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['SYS']['encryptionKey'] = 'xxx'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['SYS']['compat_version'] = '4.2'; // Modified or inserted by TYPO3 Install Tool.
$typo_db = 'db_cms'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['BE']['installToolPassword'] = 'xxx'; // Modified or inserted by TYPO3 Install To
ol.
$TYPO3_CONF_VARS['FE']['disableNoCacheParameter'] = '0'; // Modified or inserted by TYPO3 Install Tool.
// Updated by TYPO3 Install Tool 25-05-08 19:29:28
$TYPO3_CONF_VARS['EXT']['extList'] = 'css_styled_content,tsconfig_help,context_help,extra_page_cm_options,impexp,sys_note,tstemplate
,tstemplate_ceditor,tstemplate_info,tstemplate_objbrowser,tstemplate_analyzer,func_wizards,wizard_crpages,wizard_sortpages,lowlevel,
install,belog,beuser,aboutmodules,setup,taskcenter,info_pagetsconfig,viewpage,rtehtmlarea,t3skin,csh_de,static_info_tables,templavoi
la,doc_indexed_search,indexed_search'; // Modified or inserted by TYPO3 Extension Manager.
// Updated by TYPO3 Extension Manager 16-06-08 16:56:25
$TYPO3_CONF_VARS['SYS']['UTF8filesystem'] = '1'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['GFX']['im_path'] = '/usr/bin/'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['GFX']['im_version_5'] = 'im5'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['GFX']['im_combine_filename'] = 'composite'; // Modified or inserted by TYPO3 Install Tool.
// freigabe von php dateien zum upload
//$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['deny'] = '';
//$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['allow'] = '*';
//$TYPO3_CONF_VARS['BE']['fileDenyPattern'] = '';
$TYPO3_CONF_VARS['EXT']['noEdit'] = '0'; // Modified or inserted by TYPO3 Install Tool.
// Updated by TYPO3 Install Tool 18-06-08 17:20:39
// Updated by TYPO3 Extension Manager 28-07-08 10:58:10
$TYPO3_CONF_VARS['GFX']['image_processing'] = '1'; // Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['GFX']['gdlib_png'] = '1'; // Modified or inserted by TYPO3 Install Tool.
// Updated by TYPO3 Install Tool 24-03-09 11:03:05
$TYPO3_CONF_VARS[SYS][setDBinit] = 'SET NAMES utf8;';
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'.chr(10).'SET character_set_client = utf8;'.chr(10).'SET character_set_resul
ts = utf8;'; // Modified or inserted by TYPO3 Install Tool.
?>
Also ich bin mit meinem Latein echt am ENDE!! :-/ :-(
Bin für jede Hilfe DANKBAR!! ;-)
Hallo Abalorio,
bei mir hat es nun hingehauen. Allerdings bin ich einen ganz anderen Weg gegangen und habe die Daten Lokal in den richtigen Zeichensatz konvertiert. Das kannst du unter Windows ganz prima mit Edit Pad Pro machen.
Du würdest dann die Datei im latin1 Encoding öffnen und diese dann in UTF-8 konvertieren. Danach sollte es funktionieren.