Mailinglisten-Archive |
Hallo Stephan,
Am Montag, 24. April 2006 14:21 schrieb Stephan Beck:
> Lutz wrote:
> > Du müßtest mal für jede Verbindung prüfen, wie die Zeichensätze
> > jeweils gesetzt sind:
> >
> > SHOW variables LIKE 'character_set_%';
> >
> > Ich vermute, daß es da irgendwo einen kleinen, aber entscheidenden
> > Unterschied gibt.
> >
> > Mit folgendem SQL-Befehl kannst Du den Zeichensatz für die offene
> > Verbindung setzen:
> >
> > set character set "{Zeichensatz}";
> >
> > {Zeichensatz} kann z.B. latin1 oder utf8 sein. Hilft das weiter?
[...]
> Die 2 lokalen Applikationen setzen beide auf dem gleichen Framework
> und somit dem gleichen Datenbanklayer auf. Insofern muss doch der
> Fehler irgendwo in der vorhergehenden Ansprache per PHP liegen, oder
> vielleicht am Zeichensatz einzelner Dateien?
>
> Die Abfrage SHOW variables LIKE 'character_set_%'; liefert mir:
> character_set_client utf8
> character_set_connection utf8
> character_set_database latin1
> character_set_results utf8
> character_set_server latin1
> character_set_system utf8
> character_sets_dir ...
>
> aber eben für beide Applikationen...
der Teufel steckt leider im Detail. So einfach ist das nicht. Du müßtest
diese Einstellungen mal für jede Verbindung in jeder Konstellation
(Server 1, Server 2, Anwendung, phpMyAdmin) abfragen. Irgendwo weicht
dann garantiert etwas ab.
Versuche doch mal, in PHP nach dem Öffnen der Verbindung zur Datenbank
und unmittelbar vor dem eigentlichen SQL-Befehl, der fehlschlägt, mit
set character set "{Zeichensatz}";
den Zeichensatz zu setzen.
Im Übrigen ist es ein Bißchen schwierig, Dir dabei zu helfen, ohne
selbst auf die Systeme zugreifen zu können. Zeichensätze spielen hier
an verschiedenen Stellen eine Rolle. Du müßtest ggf. viel
detailliertere Angaben machen, welcher Zeichensatz wo eingestellt ist.
Viele Grüße
Lutz
php::bar PHP Wiki - Listenarchive