Und wenn du dir da nun ein paar Postings anzeigen läßt im phpMyAdmin, werden Umlaute verkorkst angezeigt?
Und als Zeichensatz im Browser ist auch UTF-8 eingestellt?
Das klingt dann nach Panne bei der UTF-8 Konvertierung.
Ja, Umlaute in die Beiträgen werden in der DB so angezeigt, wie in
diesem Beitrag beschrieben und die Zeichenkodierung des Browsers steht auf UTF-8. "Panne" hört sich gar nicht gut an...
Ob es etwas bringt, in der my.cnf
Code:
[mysql]
default-character-set=utf8
zu setzen? Will das im laufenden Betrieb nicht einfach so ausprobieren.
Ist das auch bei neuen Beiträgen so?
Was passiert, wenn du in der Datenbank einen Testbeitrag editierst und da einen richtigen Umlaut reinschreibst?
Solange es nur Umlaute sind, kann man die ja mit Suche & Ersetzen beheben. Interessant wird es wenn auch andere Sonderzeichen dazukommen...
Ja, das ist auch bei neuen Beiträgen.
Wenn ich über die DB in einen Beitrag "äöüÄÖÜ" eintrage, wird der Beitrag ohne jeglichen Inhalt angezeigt, egal, an welcher Stelle ich die Umlaute im Beitrag einsetze.
Nicht angezeigt im Forum, aber im phpMyAdmin erscheint es richtig?
Sorry. Ja, die Umlaute werden nach dem Abspeichern in der DB richtig angezeigt.
Nichts für schwache Nerven, vorher unbedingt Backup:
PHP-Code:
ALTER TABLE `mybb_posts` DROP INDEX `message`;
ALTER TABLE `mybb_posts` CHANGE subject subject VARCHAR(120) CHARSET latin1;
ALTER TABLE `mybb_posts` CHANGE message message TEXT CHARSET latin1;
ALTER TABLE `mybb_posts` CHANGE subject subject BLOB;
ALTER TABLE `mybb_posts` CHANGE message message BLOB;
ALTER TABLE `mybb_posts` CHANGE subject subject VARCHAR(120) CHARSET utf8;
ALTER TABLE `mybb_posts` CHANGE message message TEXT CHARSET utf8;
ALTER TABLE `mybb_posts` ADD FULLTEXT(`message`);
Und dann in config.php das Encoding auf utf8 setzen.
Analog muss auch mit allen anderen Feldern und Tabellen verfahren werden (Usernamen, Announcement, Events, etc.)
Möglicherweise sicherer / einfachere Lösung:
- Backup-Dump herunterladen
- Von UTF-8 nach Latin1 konvertieren (iconv -f utf8 -t latin1)
- Prüfen, daß die Umlaute etc. passen
- Konvertierten Dump hochladen
Ach, an den Nerven soll es nicht scheitern. Werde auf alle Fälle ein Backup machen und es auch erst einmal mit dem Testforum versuchen. Mir scheint aber die zweite Variante einfacher bzw. schneller.
Allerdings habe ich noch nie mit iconv gearbeitet. Ich kann das vermutlich auch direkt über die Konsole auf dem Server machen, oder? iconv ist dort jedenfalls installiert. Dem Befehl "iconv -f utf8 -t latin1" muss ich aber noch den Dateinamen des Dumps hinten anstellen!?
Code:
z.B.:
iconv -f utf8 -t latin1 "dump.sql" > "dump_latin.sql"
Danke auf jeden Fall für diesen Tipp!
Ja, daß du das mit den Dateinamen noch selber hinbekommst, hab ich dir da jetzt einfach mal so unterstellt.
Wenn du auf dem Server eine Konsole hast ist das eh die allerbeste Lösung. Da kannst du direkt auch den MySQL Export/Import machen ohne den Download/Upload Umweg...
Im Prinzip könntest du direkt auf dem Server auch ein Script auf die Datenbank loslassen das jedes Posting einzeln konvertiert. Bei der Konvertierung von RapidForum nach MyBB hab ich auch sowas ähnliches gemacht, der Konverter liegt noch irgendwo auf MyBBCoder rum.
Ja, dumps erstellen und einspielen geht alles über die Konsole und damit auch erheblich schneller. Im Moment bin ich jetzt aber erst einmal am googlen, da iconv wegen "ungültiger Eingabe-Sequenz" abbricht....
Nachtrag: mit iconv -f utf8 -t latin1 -c werden ungültige Zeichen von der Ausgabe ausgelassen. Mal sehen, wie das dann im Forum aussieht.
...ok, keine gute Idee. Das zerschießt z.B. das headerinclude-Template, in dem "ß" enthalten sind.