Umlaute und mysql mit PHP
Theo11
- php
0 Steel0 Vinzenz Mai
Hallo!
Ich lese Daten aus einer mysql Datenbank aus. Die Umlaute werden in mysql auch als solche angezeigt, als ä,o, usw...
Bei der PHP Ausgabe werden diese Umlaute jedoch falsch angezeigt.
Das anwenden von htmlentities hatte keinen Erfolg, was mach ich da falsch?
Grüße und Dank, Theo
Moin!
Ich lese Daten aus einer mysql Datenbank aus. Die Umlaute werden in mysql auch als solche angezeigt, als ä,o, usw...
Woher weisst Du das? Womit schaust Du Dir die Daten an? phpmyadmin? Das ist auch php.
Bei der PHP Ausgabe werden diese Umlaute jedoch falsch angezeigt.
Das anwenden von htmlentities hatte keinen Erfolg, was mach ich da falsch?
Welche Collation benutzt du fuer deine Datenbank und welche Kodierung zur Ausgabe. Das sollte beides gleich sein, vorzugsweise UTF-8.
Woher weisst Du das? Womit schaust Du Dir die Daten an? phpmyadmin? Das ist auch php.
Mit phpmyadmin, ja
Welche Collation benutzt du fuer deine Datenbank und welche Kodierung zur Ausgabe. Das sollte beides gleich sein, vorzugsweise UTF-8.
Laut phpmyadmin: latin1_swedish_ci
Wenn ich alle Daten abrufe, die mit beispielsweise A beginnen, so erscheinen in der Ausgabe auch die Daten mit Umlauten und werden korrekt angezeigt.
Es handelt sich um ein Lexikon. Wenn ich den einzelnen angezeigten Begriff mit Umlaut anklicke, wird das Wort per GET VErfahren als Variable übertragen, und hier scheint dann das Problem zu liegen...
Hi!
Wenn ich den einzelnen angezeigten Begriff mit Umlaut anklicke, wird das Wort per GET VErfahren als Variable übertragen, und hier scheint dann das Problem zu liegen...
Bitte beschreib nachvollziehbar und möglichst genau. Aus dem, was zu sehen ist, kann man diverse Rückschlüsse auf den Fehler ziehen. Ansonsten kann man dir nur allgemein sagen, wie es laufen soll.
Lo!
OK, folgendes, vielleicht versteh ich das einfach nur nicht:
Ich habe eine mysql Datenbank und eine tabelle mit Kollation utf-8.
Die Umlaute werden mir bei der mysql Abfrage aber nur korrekt angezeigt, wenn die Ausgabe mit latin1 und nicht mit utf-8 erfolgt.
Hi,
Ich habe eine mysql Datenbank und eine tabelle mit Kollation utf-8.
Die Umlaute werden mir bei der mysql Abfrage aber nur korrekt angezeigt, wenn die Ausgabe mit latin1 und nicht mit utf-8 erfolgt.
in welcher Zeichencodierung erfolgt denn die Kommunikation zwischen mySQL und PHP?
So long,
Martin
Hi!
Ich habe eine mysql Datenbank und eine tabelle mit Kollation utf-8.
Die Umlaute werden mir bei der mysql Abfrage aber nur korrekt angezeigt, wenn die Ausgabe mit latin1 und nicht mit utf-8 erfolgt.
Lies bitte den bereits von Vinzenz verlinkten Artikel: http://wiki.selfhtml.org/wiki/Themen:Zeichencodierung/MySQL
Lo!
Hi!
Welche Collation benutzt du fuer deine Datenbank und welche Kodierung zur Ausgabe. Das sollte beides gleich sein, vorzugsweise UTF-8.
Jein.
Die Collation ist für das Sortieren zuständig. Für die korrekte Beachtung der Umlaute ist nur der Character-Set-Teil wichtig.
Welche Kodierung bei der Kommunikation zwischen Client und Server verwendet werden kann/muss, hängt von der Anwendung ab. Wenn diese kein UTF-8 kann, dann braucht man das auch nicht vom DBMS zu fordern. Wenn man nicht selbst die Möglichkeit zum Code-Ändern hat, ist es auch gleich gar keine Option, die Daten in UTF-8 abzufragen. In dem Fall muss man sogar die Konfiguration des MySQL-Servers so ändern, dass die Verbindungskodierung per Default Latin1 (oder was auch immer) ist. (character-set-server=latin1 setzen oder init_connect='SET NAMES latin1' - init-connect hat den Vorteil, dass der Server an sich schon auf character-set-server=utf8 stehen kann.)
"Vorzugsweise UTF-8" kann man nur dann empfehlen, wenn man eine neue Anwendung schreibt, alle zu verwendenden Komponenten damit umgehen können, oder den Code für die Arbeit mit UTF-8 ändern kann.
Es ist auch kein Problem, Feld- und Verbindungskodierung auf unterschiedlichen Werten stehen zu haben. MySQL kodiert selbständig hin und her. Allerdings kann es dabei prinzipbedingt Zeichenverlust geben, wenn von einer "größeren" in eine "kleinere" Kodierung umkodiert werden muss.
Lo!
Hi!
"Vorzugsweise UTF-8" kann man nur dann empfehlen, wenn man eine neue Anwendung schreibt, alle zu verwendenden Komponenten damit umgehen können, oder den Code für die Arbeit mit UTF-8 ändern kann.
Davon bin ich einfach mal ausgegangen. Sonst gaebs dieses Problem eher nicht.
Hallo,
Ich lese Daten aus einer mysql Datenbank aus. Die Umlaute werden in mysql auch als solche angezeigt, als ä,o, usw...
d.h. wenn Du Statements per phpMyAdmin absetzt? Wenn ja, gut so.
Bei der PHP Ausgabe werden diese Umlaute jedoch falsch angezeigt.
Das anwenden von htmlentities hatte keinen Erfolg, was mach ich da falsch?
SELF-Wiki, Zeichencodierung/MySQL sollte Dir weiterhelfen.
Freundliche Grüße
Vinzenz