Seite 1 von 3
Umlaute werden nach Konvertierung nicht übernommen
Verfasst: 11.04.2008 08:55
von Webdevil71
Hallo,
ich habe bereits einige Beiträge zum Thema Umlaute gelesen.
Leider konnten diese mir nicht weiterhelfen.
Es geht darum, ein PHP-Fusion Forum auf ein phpBB3 zu konvertieren.
Hierzu gibt es einen Konverter von Fusion nach phpBB2.
Diese Konvertierung funktioniert einwandfrei.
Alle Umlaute werden im phpBB2 richtig dargestellt.
Konvertiere ich nun auf phpBB3 werden die Umlaute nicht übernommen.
Beim ersten Versuch hatte ich die Tabellen vom phpbb2 auf Kollation UTF8_general_ci stehen, später auch mit UTF8_bin versucht, da phpBB3 diese ebenfalls in UTF8_bin anlegt.
Verfasst: 11.04.2008 09:43
von Balint
Hallo!
Die Collation hat für die Konvertierung keinerlei Einfluß.
Versuch mal in der lang_main.php die Option
auf
umzustellen und erneut zu konvertieren.
Viele Grüße,
Bálint
Verfasst: 11.04.2008 21:53
von Webdevil71
Vielen Dank für die Antwort.
Hab die Datei nicht gefunden, sodaß ich es nicht ausprobieren konnte.
Ein anderer Weg brachte dann auch den gewünschten Erfolg.
Sehr prakmatisch aber funktioniert
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ß', 'ß') WHERE post_text LIKE '%ß%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, '´', '') WHERE post_text LIKE '%´%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ä', 'ä') WHERE post_text LIKE '%ä%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ö', 'ö') WHERE post_text LIKE '%ö%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ü', 'ü') WHERE post_text LIKE '%ü%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'Ä', 'Ä') WHERE post_text LIKE '%Ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ß', 'ß') WHERE post_subject LIKE '%ß%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, '´', '') WHERE post_subject LIKE '%´%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ä', 'ä') WHERE post_subject LIKE '%ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ö', 'ö') WHERE post_subject LIKE '%ö%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ü', 'ü') WHERE post_subject LIKE '%ü%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'Ä', 'Ä') WHERE post_subject LIKE '%Ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ß', 'ß') WHERE user_sig LIKE '%ß%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, '´', '') WHERE user_sig LIKE '%´%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ä', 'ä') WHERE user_sig LIKE '%ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ö', 'ö') WHERE user_sig LIKE '%ö%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ü', 'ü') WHERE user_sig LIKE '%ü%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'Ä', 'Ä') WHERE user_sig LIKE '%Ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ß', 'ß') WHERE topic_title LIKE '%ß%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, '´', '') WHERE topic_title LIKE '%´%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ä', 'ä') WHERE topic_title LIKE '%ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ö', 'ö') WHERE topic_title LIKE '%ö%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ü', 'ü') WHERE topic_title LIKE '%ü%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'Ä', 'Ä') WHERE topic_title LIKE '%Ä%';
Große "Ü" und "Ö" hab ich so auf die Schnelle nicht gefunden. Kann man ja nach Bedarf erweitern.
Grüße
Webdevil
Verfasst: 06.05.2008 17:37
von Düssi
Um das Thema nochmal aufzugreifen:
Da ich auch gerade auf meinem Testserver mein Forum von 2 auf 3 konvertiert habe und vom Problem der Umlaute betroffen bin, war mir dieser Thread hilfreich.
Den SQL Befehl von webdevil71 brachte leider keine Änderung.
Die Hilfe von Balint, die Datei von iso auf utf umzustellen und einfach nochmal die Datenbank drüber zu konvertieren hat Erfolg gebracht !
Vielen Dank
Verfasst: 27.08.2008 09:58
von Nico_Schubert
Webdevil71 hat geschrieben:Vielen Dank für die Antwort.
Hab die Datei nicht gefunden, sodaß ich es nicht ausprobieren konnte.
Ein anderer Weg brachte dann auch den gewünschten Erfolg.
Sehr prakmatisch aber funktioniert
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ß', 'ß') WHERE post_text LIKE '%ß%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, '´', '') WHERE post_text LIKE '%´%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ä', 'ä') WHERE post_text LIKE '%ä%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ö', 'ö') WHERE post_text LIKE '%ö%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ü', 'ü') WHERE post_text LIKE '%ü%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'Ä', 'Ä') WHERE post_text LIKE '%Ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ß', 'ß') WHERE post_subject LIKE '%ß%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, '´', '') WHERE post_subject LIKE '%´%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ä', 'ä') WHERE post_subject LIKE '%ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ö', 'ö') WHERE post_subject LIKE '%ö%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ü', 'ü') WHERE post_subject LIKE '%ü%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'Ä', 'Ä') WHERE post_subject LIKE '%Ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ß', 'ß') WHERE user_sig LIKE '%ß%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, '´', '') WHERE user_sig LIKE '%´%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ä', 'ä') WHERE user_sig LIKE '%ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ö', 'ö') WHERE user_sig LIKE '%ö%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ü', 'ü') WHERE user_sig LIKE '%ü%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'Ä', 'Ä') WHERE user_sig LIKE '%Ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ß', 'ß') WHERE topic_title LIKE '%ß%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, '´', '') WHERE topic_title LIKE '%´%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ä', 'ä') WHERE topic_title LIKE '%ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ö', 'ö') WHERE topic_title LIKE '%ö%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ü', 'ü') WHERE topic_title LIKE '%ü%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'Ä', 'Ä') WHERE topic_title LIKE '%Ä%';
Große "Ü" und "Ö" hab ich so auf die Schnelle nicht gefunden. Kann man ja nach Bedarf erweitern.
Grüße
Webdevil
Danke für den Sql Befehl, dieser hat mir sehr geholfen und ein wenig Schreibarbeit erleichtert.
Grüße Nico
Verfasst: 29.08.2008 09:00
von LaFeBeSi
Ich hab auch zuerst mal die SQL Befehle ausprobiert, die haben jedoch nichts gebracht. Die Änderung von Balint war dann der Schlüssel zum Erfolg, vielen Dank!

Verfasst: 31.08.2008 21:00
von Ghostt
das problem mit den umlauten und Sonderzeichen lässt sich am saubersten und einfach lösen, mit mysqldumper.de!
bigdump hat da versagt!!
ich habe es selbst getestet und es brachte den gewünschten erfolg.
Verfasst: 31.08.2008 21:06
von Mahony
Hallo Ghostt
Dir ist aber schon klar dass es hier um die Konvertierung von phpBB 2.x zu phpBB 3.x geht und das Problem mit den Umlauten während der Konvertierung aufgetreten ist?
Die Lösung von Balint ist hier die einzig richtige.
mysqldumper.de hat geschrieben:Wenn das Programm, welches sich mit dem MySQL-Server verbindet, dem Server nicht mittteilt welcher Zeichensatz verwendet werden soll, dann greift die Standardeinstellung des MySQL-Servers (die Daten werden dann in der Kodierung geliefert, die in der MySQL-Systemvariablen character_set_connection voreingestellt ist).
Und genau hier knallt es in der Praxis wenn die Daten in einer anderen Kodierung geliefert werden, als das Programm erwartet.
Das gilt für beide Richtungen.
Quelle:
mysqldumper.de - Die Umlautproblematik
Grüße: Mahony
Verfasst: 01.09.2008 19:57
von wobo
Mahony hat geschrieben:Die Lösung von Balint ist hier die einzig richtige.
Gerne, aber wo soll denn die Datei lang_main.php sein?
Ich habe ein punBB-Forum in utf-8 in phpBB 2.0.23 konvertiert. Vor dem Konvertierungslauf habe ich den Wert in lang_main.php der phpBB 2 auf utf-8 gestellt. Die Konvertierung lief korrekt, alle Umlaute werden in phpBB 2.0.23 korrekt dargestellt.
In punBB 3.0.2 gibt es die Datei lang_main.php nicht. Nach der Konvertierung von phpBB 2 auf phpBB 3 sind alle Umlaute zerschossen.
Der Charset der Webseite des Forums wird aber korrekt dargestellt, wie man an den Forenmeldungen ("Neue Beiträge") sehen kann. Nur die importierten Texte und Überschriften werden falsch dargestellt.
Neu eingegebene Texte werden korrekt dargestellt.
Ich habe alles abgesucht, ich finde keine Erklärung.
wobo
Verfasst: 01.09.2008 21:41
von jopa
ich hab' zwar von der Sache an sich keine Ahnung, aber vielleicht ist ja die Datei bei phpBB2 gemeint.
Also vor der Konvertierung diese Datei ändern und dann kommt vielleicht das Richtige raus?!?
(bevor ihr anfangt auszuprobieren, immer Backups, ...)