PHPMyadmin mit kaputten Sonderzeichen

PHPMyadmin mit kaputten Sonderzeichen

am 19.10.2007 12:08:25 von Jonas Werres

Hallo,
bin mir nicht sicher, ob es hier passt, aber es scheint mir am Richtigsten:
Mein PHP-Admin zeigt mir Sonderzeichen falsch an. Die Datenbank ist UTF-8,
der Webserver sendet auch UTF-8. Und eigene UTF-8-PHP-Applikationen lesen
schreiben korrekt so, dass is mit der Ubuntu-UTF-8-Konsole keine Probleme
gibt. Nur PHPMyAdmin schreibt so rein, dass es selbst es richtig anzeigt,
Konsole und eigene Applikationen aber nicht. Woran könnte das liegen? Ich
habe sowohl die aktuelle Feisty- wie auch die Gutsy-Version versucht. (2.9
bzw. 2.10).

Gruß

Re: PHPMyadmin mit kaputten Sonderzeichen

am 19.10.2007 12:23:04 von Joerg Behrens

Jonas Werres schrieb:
> Hallo,
> bin mir nicht sicher, ob es hier passt, aber es scheint mir am Richtigs=
ten:=20
> Mein PHP-Admin zeigt mir Sonderzeichen falsch an. Die Datenbank ist UTF=
-8,
> der Webserver sendet auch UTF-8. Und eigene UTF-8-PHP-Applikationen les=
en
> schreiben korrekt so, dass is mit der Ubuntu-UTF-8-Konsole keine Proble=
me
> gibt. Nur PHPMyAdmin schreibt so rein, dass es selbst es richtig anzeig=
t,
> Konsole und eigene Applikationen aber nicht. Woran könnte das lieg=
en? Ich
> habe sowohl die aktuelle Feisty- wie auch die Gutsy-Version versucht. (=
2.9
> bzw. 2.10).

Du must nach dem Aufbau der Verbindung dem Server sagen was dein=20
Client/Anwendung fuer einen Charset benutzt. Wenn der DB Server ein=20
neuer/anderer ist kann es sein das sich der Default geaendert hat und=20
deine Anwendung nun einen "falschen" benutzt.

Es ging also solange gut weil du keinen Charset angegeben hast und der=20
Default gepasst hat.

Der PMA sagt dem Server was er spricht bzw. was er gerne haette darum=20
funktioniert das auch wenn du damit Daten schreibst und wieder liest.=20
Nur die Anzeige deiner alten Daten bzw. die welche du Schreibst kann er=20
nicht anzeigen weil es nicht das ist fuer was er es haelt bzw.=20
angefordert hat.

Deine Anwendung sollte ein "SET NAME $charset" Statement absenden.


Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: PHPMyadmin mit kaputten Sonderzeichen

am 19.10.2007 12:56:56 von Jonas Werres

> Du must nach dem Aufbau der Verbindung dem Server sagen was dein
> Client/Anwendung fuer einen Charset benutzt. Wenn der DB Server ein
> neuer/anderer ist kann es sein das sich der Default geaendert hat und
> deine Anwendung nun einen "falschen" benutzt.
>
> Es ging also solange gut weil du keinen Charset angegeben hast und der
> Default gepasst hat.
Die Applikation ist neu. Es gibt also keine alten Daten. Sie ist auf
Symfonybasis, ich habe mich durch den Propel-Code nicht durchgearbeitet,
würde aber annehmen, dass er richtig ist.
Wobei mir gerade einfällt, dass ich das gleiche Problem auf einer anderen
Domain auch habe, da mit PDO.

>
> Der PMA sagt dem Server was er spricht bzw. was er gerne haette darum
> funktioniert das auch wenn du damit Daten schreibst und wieder liest.
> Nur die Anzeige deiner alten Daten bzw. die welche du Schreibst kann er
> nicht anzeigen weil es nicht das ist fuer was er es haelt bzw.
> angefordert hat.
>
> Deine Anwendung sollte ein "SET NAME $charset" Statement absenden.
Im Symfony-Code ist das enthalten. (Ich hoffe mal, es wird auch ausgeführt)
Der Gegencheck mit der Konsole (echo "SELECT ..."|mysql ...) fällt ja auch
zugunsten meiner Applikationen aus.

Ist es denn sicher, dass es da nichts bei PHPMyAdmin zu schrauben gibt?

Gruß

Re: PHPMyadmin mit kaputten Sonderzeichen

am 19.10.2007 18:09:18 von Michael Ziegler

Jonas Werres wrote:
> der Webserver sendet auch UTF-8. Und eigene UTF-8-PHP-Applikationen lesen
> schreiben korrekt so, dass is mit der Ubuntu-UTF-8-Konsole keine Probleme
> gibt. Nur PHPMyAdmin schreibt so rein, dass es selbst es richtig anzeigt,
> Konsole und eigene Applikationen aber nicht.

Ich hatte mal ein ähnliches Problem. Es stellte sich heraus, dass mysql
die von der Konsole gesendeten UTF8-Zeichen für Latin1 hielt und gedacht
hat er würde sie in UTF8 codieren, dann als Murks in der DB gespeichert
- beim Anzeigen das ganze rückwärts, sodass die Konsole die Daten wieder
brauchbar anzeigte.

Gönn dir im mysql-Client mal ein beherztes "Set names utf8;" und
selektiere mal ein paar Datenfelder mit Sonderzeichen. Wenn dann Mist
rauskommt, hast du dasselbe Problem, weil der Mysql-Client die Daten
dann nicht mehr so konvertiert, dass die Konsole daraus wieder die
Original-Daten zaubert.

Gruß,
Michael

Re: PHPMyadmin mit kaputten Sonderzeichen

am 20.10.2007 12:25:14 von Jonas Werres

> Gönn dir im mysql-Client mal ein beherztes "Set names utf8;" und
> selektiere mal ein paar Datenfelder mit Sonderzeichen. Wenn dann Mist
> rauskommt, hast du dasselbe Problem, weil der Mysql-Client die Daten
> dann nicht mehr so konvertiert, dass die Konsole daraus wieder die
> Original-Daten zaubert.

Mpf... Verdammt. "Set names utf8;SELECT * FROM project" auf der Konsole
liefert tatsächlich Daten von PMA korrekt zurück...

Weiß jemand, wie ich Symfony überrede, die Daten korrekt auszulesen?

Re: PHPMyadmin mit kaputten Sonderzeichen

am 20.10.2007 12:27:36 von Jonas Werres

> Weiß jemand, wie ich Symfony überrede, die Daten korrekt auszulesen?

Hmpf, jaja, erst googlen, dann Fragen ...
http://www.symfony-project.com/forum/index.php/t/1190/

Re: PHPMyadmin mit kaputten Sonderzeichen

am 20.10.2007 14:00:15 von Michael Ziegler

Jonas Werres wrote:
>> Gönn dir im mysql-Client mal ein beherztes "Set names utf8;" und
>> selektiere mal ein paar Datenfelder mit Sonderzeichen. Wenn dann Mist
>> rauskommt, hast du dasselbe Problem, weil der Mysql-Client die Daten
>> dann nicht mehr so konvertiert, dass die Konsole daraus wieder die
>> Original-Daten zaubert.
> Mpf... Verdammt. "Set names utf8;SELECT * FROM project" auf der Konsole
> liefert tatsächlich Daten von PMA korrekt zurück...

PMA ist in Sachen Charset nach meiner Erfahrung sehr zuverlässig - wenn
der Mist anzeigt, dann steht höchstwahrscheinlich auch Mist drin ;)

Freut mich dass ich helfen konnte.

Michael

Re: PHPMyadmin mit kaputten Sonderzeichen

am 21.10.2007 12:19:08 von Jonas Werres

> Freut mich dass ich helfen konnte.

Vielen Dank nochmal.