Seite 1 von 1
DBAL Funktion für mysql_set_charset()
Verfasst: 06.02.2013 07:49
von jevo
mysql_set_charset()
Weis jemand, ob es sowas als phpBB DBAL Funktion gibt?
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 06.02.2013 18:17
von Miriam
Nein, gibt es nicht.
Es sollte auch UTF-8 benutzt werden. Dafür wurde phpBB3 "gebaut".
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 06.02.2013 19:44
von jevo
Das ist das Problem, was ich habe.
Der SQL Server ist auf utf8 gestellt, die Tabelle ist auf utf8_bin gestellt.
Die Datenquelle ist auch utf8.
Trotzdem scheinen die Daten als latin1 übergeben zu werden, wodurch einige Zeichen dann falsch angezeigt werden. Das ist jedenfalls so, wenn ich die $db->xxx funktionen von phpBB3 nutze.
Öffne ich eine SQL-Server Verbinung "vorbei am phpBB" und stelle mysql_set_charset('utf8'), dann passt alles.
k.A. woran das liegt
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 06.02.2013 21:09
von BNa
Die entsprechende Ausgabe PHP (da wo auch die Dbal SQL drin ist) mal in utf8 ohne bom gespeichert oder den Ausgabeheader mal auf utf8 erzwungen? Oder auch die Template Datei mal in utf8 ohne bom gespeichert. Hat mir oft bei Ajax/jQ Problemen geholfen. Gibt allerdings schon das Roh SQL sowas aus, solltest Du mal das Konzept an sich checken.
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 06.02.2013 22:15
von jevo
Hmm - ich möchte Daten aus einer Textdatei in die Datenbank bekommen. Die Datei ist UTF-8 mit DOS Zeilenumbruch (CR+LF). Die Zeichen werden auch korrekt angezeigt.
Es geht bei mir um den GeoMap Mod, besser gesagt um den Installer. Es gibt Städte, welche diakritische Zeichen haben (also Buchstaben mit lustigen Kringeln und Häkchen). Die "normalen" diakritischen Zeichen, wie ^´` bekommt man ja in die DB, aber dann gibts noch verschiedene Kringel, Kreise und Häkchen usw. Die werden dann immer als "?" angezeigt
Ich habe mir schon einen abgebrochen und habe es über die phpBB eigenen Funktionen nicht geschafft, daß die Strings richtig in der Datenbank abgelegt werden. Mit einer MySQL Direktverbindung und
mysql_set_charset('utf8') klappt das wunderbar - nur ist
mysql_set_charset lt. PHP Doku erst am MySQL 5 bekannt ...
Also liegt das "Problem" wohl irgendwo in der DBAL Funktion von phpBB - oder besser gesagt - das Problem liegt bei meinem Aufruf. Wenn ich im Forum einen Beitrag scheibe und diesen absende, landen auch die wildesten Zeichen richtig in der Datenbank. Also geht das auch über die normalen phpBB Datenbankoperationen.
Das Problem ist: Ich hab noch nicht wirklich herausgefunden "Wie"
Ich baue erst mal den Installer um, damit er über ein meta_refresh() funktioniert. Wenn ich dann an der Stelle bin, evaluiere ich das mal weiter.
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 07.02.2013 07:36
von posaunen
jevo hat geschrieben:Hmm - ich möchte Daten aus einer Textdatei in die Datenbank bekommen. Die Datei ist UTF-8 mit DOS Zeilenumbruch (CR+LF). Die Zeichen werden auch korrekt angezeigt.
Also liegt das "Problem" wohl irgendwo in der DBAL Funktion von phpBB - oder besser gesagt - das Problem liegt bei meinem Aufruf.
Welche Zeichen angezeigt werden liegt auch an dem im Browser zur Ansicht eingestellten Charset. Paßt das nicht zu dem INhalt der Datenbank funktioniert es nicht. Weiter problematisch kann das eingestellte Charset des Browser sein mit welchem die Daten eingegeben werden.
Re: DBAL Funktion für mysql_set_charset()
Verfasst: 07.02.2013 08:26
von jevo
posaunen hat geschrieben:
Welche Zeichen angezeigt werden liegt auch an dem im Browser zur Ansicht eingestellten Charset. Paßt das nicht zu dem INhalt der Datenbank funktioniert es nicht. Weiter problematisch kann das eingestellte Charset des Browser sein mit welchem die Daten eingegeben werden.
Das kann ich verneinen. Schreibe ich die Daten in die DB und lese sie dann wieder aus, fehlen die Zeichen auch im Editor (bei gleichem Charset). z.T. werden die Strings auch bei der Übergabe am Sonderzeichen abgeschnitten.
Es ist also definitiv irgendwas bei der Übergabe der Daten faul.
Ich bin aber fast fertig mit dem neuen Grungdgerüst des Installers. Wenn das Problem immer noch besteht, kann ich dann auch mal ein paar konkrete Beispiele geben