DBAL Funktion für mysql_set_charset()

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
jevo
Mitglied
Beiträge: 367
Registriert: 05.09.2007 13:06
Wohnort: Freiberg

DBAL Funktion für mysql_set_charset()

Beitrag von jevo »

mysql_set_charset()

Weis jemand, ob es sowas als phpBB DBAL Funktion gibt?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: DBAL Funktion für mysql_set_charset()

Beitrag von Miriam »

Nein, gibt es nicht.
Es sollte auch UTF-8 benutzt werden. Dafür wurde phpBB3 "gebaut".
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
jevo
Mitglied
Beiträge: 367
Registriert: 05.09.2007 13:06
Wohnort: Freiberg

Re: DBAL Funktion für mysql_set_charset()

Beitrag 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
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: DBAL Funktion für mysql_set_charset()

Beitrag 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.
Benutzeravatar
jevo
Mitglied
Beiträge: 367
Registriert: 05.09.2007 13:06
Wohnort: Freiberg

Re: DBAL Funktion für mysql_set_charset()

Beitrag 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.
posaunen
Mitglied
Beiträge: 402
Registriert: 21.04.2004 20:05

Re: DBAL Funktion für mysql_set_charset()

Beitrag 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.
Benutzeravatar
jevo
Mitglied
Beiträge: 367
Registriert: 05.09.2007 13:06
Wohnort: Freiberg

Re: DBAL Funktion für mysql_set_charset()

Beitrag 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
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“