Seite 1 von 1

Probleme mit Konvertierung und UTF8

Verfasst: 22.05.2007 18:42
von SnipesVdH
Hallo zusammen,

das Forum, das ich derzeit betreue, habe ich testweise nach Olympus konvertiert. Derzeit ist die 2.0er Datenbank auf utf8_general_ci eingestellt, ebenso alle Tabellen.
phpBB 3.0 benutzt utf8_bin und nach der Konvertierung sind alle UTF8 kodierten Zeichen falsch. Wie bekomme ich das bei der tatsächlichen Konvertierung so hin, dass die derzeit vorhandenen UTF8-Daten so bleiben?

Danke für eure Hilfe!

Verfasst: 22.05.2007 20:05
von Saint
Hi,

nicht getestet aber versuch sonst mal:

install/convertors/functionsphpbb20.php

suche:

Code: Alles auswählen

		case 'mysql_41':
			$create_sql = 'CREATE TABLE ' . $table_prefix . 'userconv (
				user_id mediumint(8) NOT NULL,
				username_clean varchar(255) DEFAULT \'\' NOT NULL
			) CHARACTER SET `utf8` COLLATE `utf8_bin`';
		break;
und ersetze durch:

Code: Alles auswählen

		case 'mysql_41':
			$create_sql = 'CREATE TABLE ' . $table_prefix . 'userconv (
				user_id mediumint(8) NOT NULL,
				username_clean varchar(255) DEFAULT \'\' NOT NULL
			) CHARACTER SET `utf8` COLLATE `utf8_general_ci`';
		break;
edit: install/schemas/mysql_41_schema.sql:

alle utf8_bin durch utf8_general_ci ersetzen.

Und dann die Konvertierung neu machen.

Notfalls, falls das nicht funktioniert, versuch mal ob du das mit diesem Script reparieren kannst:
http://www.mysqldumper.de/board/viewtopic.php?t=2406

Gruß

Saint

Verfasst: 22.05.2007 20:11
von kellanved
Wichtig: der Konverter geht nur in den utf8 Modus, wenn auch im 2er language pack UTF8 angegeben ist.

Verfasst: 22.05.2007 20:51
von SnipesVdH
kellanved hat geschrieben:Wichtig: der Konverter geht nur in den utf8 Modus, wenn auch im 2er language pack UTF8 angegeben ist.
Öhm, ich hab da ein "normales" Sprachpaket, wie kann ich rausfinden, ob das das UTF8-Paket ist?
BTW: MySQLDumper bekomme ich wegen einer Virenwarnung nicht entpackt. Kennt das Problem jemand?

Verfasst: 22.05.2007 22:05
von Saint
Ja, kenne ich. Der Virenscanner ist mit einem Script, das sich mit einem Server verbindet, nicht einverstanden und hält das für einen Trojaner.
Ist aber kein Virus.

Verfasst: 23.05.2007 18:21
von Antares
Hi!

Also bei mir funktioniert es leider nicht.

Oder ist es zwingend notwendig, dass ich davor die vorher falsch konvertierten Tabellen wieder lösche?

MfG Heiko

edit: Also mit vorherigem Leeren der Tabellen posts und topic geht es auch nicht...

edit2:

Ich habe dann doch eine funktionierende Lösung gefunden.

in der Datei functions_phpbb20.php im Verzeichnis /install/convertors folgende Stellen ändern:

Code: Alles auswählen

$encoding = $lang_enc_array[$get_lang];

in

$encoding = "utf-8";

und

return utf8_recode($text, $lang_enc_array[$get_lang]);

in

return utf8_recode($text, "utf-8");

Verfasst: 24.05.2007 16:01
von kellanved
$lang_enc_array hält Werte aus dem 2.0 Language-pack; dort ist eigentlich der richtige Ort für die Änderung.