Problem mit Unicodezeichen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
navigato
Mitglied
Beiträge: 11
Registriert: 22.04.2011 20:19

Problem mit Unicodezeichen

Beitrag von navigato »

Hallo zusammen,

ich habe das Problem, dass die Unicodezeichen im Forum nicht dargestellt werden. Ich habe das Forum aus einem Export erstellt. Die Exportdatei ist Utf-8 kodiert. Wenn ich mir die betreffenden Stellen in der DB anschaue sind die Unicodezeichen enthalten, macht mir evtl phpMyadmin einen streich an der Stelle? :o

Hat jemand eine Idee??

Danke
Gruß
Navigato
Benutzeravatar
SemiX
Mitglied
Beiträge: 154
Registriert: 05.09.2004 19:39
Wohnort: NRW
Kontaktdaten:

Re: Problem mit Unicodezeichen

Beitrag von SemiX »

Servus, hast Du inzwischen eine Lösung gefunden? Wenn nicht, dann sage bitte, was "sind die Unicodezeichen enthalten" im Zusammenhang mit phpMyadmin genau bedeutet: Werden hier die Umlaute korrekt (d. h. leserlich) dargestellt, oder bekommst Du auch in phpMyadmin an Stelle von Umlauten nur unleserliche Zeichen angezeigt?

Wenn letzteres der Fall ist, dann ist beim Import-Vorgang vermutlich etwas schiefgelaufen, weil die Zeichenkodierung von Datenbank / Importskript / Export-Datei nicht übereinstimmten. Ist ersteres jedoch der Fall (d. h. in der DB ist alles in Ordnung, phpBB2-Forum zeigt die Umlaute aber falsch an), dann liegt das daran, dass deine Datenbank einen anderen (Standard-)Zeichensatz ausgibt als ihn phpBB2 verwendet. Früher war das meistens Latin-1 (ISO-8859-1), heute isses zunehmend UTF-8. Werf mal einen Blick auf die Systemvariablen deines DB-Servers. In diesem Fall hast Du zwei Möglichkeiten: Entweder Du veränderst den Standardausgabezeichensatz deiner Datenbank oder Du teilt dieser beim Verbindungsaufbau mit, welchen Zeichensatz (Chatset) ihr verwendet ;-) Für MySQL sähe eine mögliche Lösung dann so aus:

Code: Alles auswählen

#
#-----[ OPEN ]---------------------------------------------
#
db/mysql.php
db/mysql4.php

#-----[ FIND ]---------------------------------------------
	$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}

if($this->db_connect_id)
{

#-----[ AFTER, ADD ]---------------------------------------
	// Fix: Tell the server to use the forum-charset ISO-8859-1 (latin1) as default
	@mysql_query("SET NAMES 'latin1'", $this->db_connect_id);

#-----[ EoM ]----------------------------------------------
Hat zumindest meine UTF-8-Probleme behoben :)

PS. Noch ein lesenswerter Beitrag zu dem ganzen Umlaut-Thema: MySQLDumper-Board :: Die Umlautproblematik - was, wieso, was tun?
Kein Privatsupport. Das Forum leistet gute Hilfe- und bessere als ich allemal... (:
T0M
Mitglied
Beiträge: 1
Registriert: 16.05.2011 19:07

Re: Problem mit Unicodezeichen

Beitrag von T0M »

Ich hänge mich hier gleich mal mit einem Problem an, da es gut dazu passt.... habe bereits etliche Foren/Sites im Netz durchsucht, aber bis jetzt hat leider nichts geholfen

Ausgangssituation:

Habe ein altes Forum, welches ich auf einen neuen Server migrieren und dabei gleich einmal von der alten Foren-Version auf eine Aktuelle umsteigen werde. Umlaute funktionieren derzeit problemlos.

Alt:
Forum => phpbb V2
DB => MySQL charset: UTF-8 Unicode, MySQL connection collation: utf8_unicode_ci, Collation: latin1_swedish_ci
Charset im HTML => charset=iso-8859-1

Neu: selbes phpbb, selbe DB-Settings, selbe charset einstellungen

Ich habe bereits mehrfach mit mysqldumper die db migriert und versucht 1:1 die selbe ausgangssituation zu erzeugen... zuerst hatte ich fehlerhafte umlaute in der db, jetzt habe ich aber die umlaute auch korrekt in der db stehen (korrekt = ä ü)

Egal ob ich den charset auf iso-8859-1 oder utf-8 umstelle, kein unterschied. Habe jetzt auch gerade das, was hier in diesem thread geraten wird gemacht... hat leider nicht geholfen.

Mir gehen langsam die ideen aus... evtl. via sql kommandos alle umlaute/sonderzeichen auf utf-8 standard bringen und dann charset und db auf utf-8 umstellen? Würde das funkt.? Hat wer dafür einen passenden SQL-Command-String?

Sonst irgendwelche Vorschläge? Das neue Forum soll dann im Endeffekt auf UTF-8 standardisiert werden...
Benutzeravatar
SemiX
Mitglied
Beiträge: 154
Registriert: 05.09.2004 19:39
Wohnort: NRW
Kontaktdaten:

Re: Problem mit Unicodezeichen

Beitrag von SemiX »

Phew, ich bin zwar kein Experte in dem Bereich, trotzdem versuche ich es mal - und hoffe, dass ich nicht allzu viel Mist dabei erzähle :-) So ganz ist mir noch nicht klar, was Du machen willst (@T0M). Du willst von einer alten Foren-Version auf eine aktuelle Umsteigen (klingt für mich nach Portierung 2.0.x -> 3.0.8 ), schreibst dann aber im Nachhinein, dass Du das selbe phpBB auf dem neuen Server benutzt. phpBB 3 ist standardmäßig auf UTF-8 ausgelegt und verfügt über einen Konverter für phpBB 2; also ich habe noch nie davon gehört, dass man sein phpBB 2 (bzw. die dazugehörige Datenbank) vorher auf UTF-8 umstellen muss.

Nebenbei gefragt, woher hast Du eigentlich die Daten über die Zeichensätze? Aus phpMyAdmin? Das, was dir phpMyAdmin an Infomationen anzeigt, sagt nichts über die Verbindung aus, die dein phpBB zum Server herstellt. Und die collation bestimmt nur, nach welchen Kriterien DB-intern verglichen und sortiert wird. Bei den Zeichensätzen gibt es leider zahlreiche Fehlerquellen, weil sich die Zeichensätze an verschiedenen Stellen unterscheiden können: Zeichensatz des Servers, der Sortierung, des DB-Systems, den Datenbanken, der Tabellen, der MySQL-Verbindung, der Verbindung zum Skript, des Skriptes selber, der Ausgabe im Browser, usw. Auch deine MySQL-Version kann eine Rolle spielen. Deshalb wirst Du auch keine Standardlösung finden, sobald dein Problem etwas spezieller wird. Immerhin hast Du MySQLDumper drauf, der zeigt dir sämtliche Variablen des DB-Servers an (Home -> MySQL-Variablen -> Variablen). Werf mal einen Blick auf die character_set_*-Einträge. Dann weißt Du, welchen Zeichensatz dein Server liefert/erwartet (und ob es wirklich UTF-8 ist), und vielleicht hilft dir das schon weiter.

Um phpBB2 selbst nach UFT-8 zu konvertieren, ist auch nicht damit getan, nur den Header zu ändern. Du musst auch die ganzen (Sprach-)Dateien, als UTF-8-Dateien abspeichern (ohne BOM). Sonst hast Du zwar Daten aus der Datenbank in UTF-8, aber nicht in deinen lang-Dateien.
Kein Privatsupport. Das Forum leistet gute Hilfe- und bessere als ich allemal... (:
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“