Discussion:
Problem mit Zeichencodierung
(zu alt für eine Antwort)
Chris
2010-04-14 20:35:32 UTC
Permalink
Hallo,

ich musste kürzlich meine MySQL-Datenbank per Dump neu einspielen lassen über den
Provider. Dieser hatte soweit ich erfuhr, automatische Codierung eingestellt. Leider wurden
jedoch die Umlaute nicht korrekt übernommen und nun falsch angezeigt.
Dieses Problem konnte ich auch nicht durch einen neuen Upload mit entsprechender Latin1-
Einstellung, oder durch Änderung der Codierungsparameter in PHPMyAdmin.

Was kann ich nun tun, damit mir die Datenbankinhalte wieder korrekt angezeigt werden?

Danke für Eure Hilfe!

Viele Grüße,

Chris
Chris
2010-04-22 12:12:51 UTC
Permalink
keiner einen Tip?
Post by Chris
Hallo,
ich musste kürzlich meine MySQL-Datenbank per Dump neu einspielen lassen über den
Provider. Dieser hatte soweit ich erfuhr, automatische Codierung eingestellt. Leider wurden
jedoch die Umlaute nicht korrekt übernommen und nun falsch angezeigt.
Dieses Problem konnte ich auch nicht durch einen neuen Upload mit entsprechender Latin1-
Einstellung, oder durch Änderung der Codierungsparameter in PHPMyAdmin.
Was kann ich nun tun, damit mir die Datenbankinhalte wieder korrekt angezeigt werden?
Danke für Eure Hilfe!
Viele Grüße,
Chris
Axel Schwenke
2010-04-22 12:33:49 UTC
Permalink
Post by Chris
ich musste kürzlich meine MySQL-Datenbank per Dump neu einspielen
lassen über den Provider. Dieser hatte soweit ich erfuhr, automatische
Codierung eingestellt. Leider wurden jedoch die Umlaute nicht korrekt
übernommen und nun falsch angezeigt. Dieses Problem konnte ich auch
nicht durch einen neuen Upload mit entsprechender Latin1- Einstellung,
oder durch Änderung der Codierungsparameter in PHPMyAdmin.
Dieses Kauderwelsch ergibt überhaupt keinen Sinn. Was soll denn bitte
"automatische Codierung" sein? Und was hat phpMyAdmin damit zu tun?
Post by Chris
Was kann ich nun tun, damit mir die Datenbankinhalte wieder korrekt angezeigt werden?
Festlegen was du eigentlich willst, rausfinden was tatsächlich da ist
und dann das eine in das andere überführen.

Ein kleines bischen Grundlagenwissen wäre dafür hilfreich. Bevor ich
dich jetzt mit dem Handbuch bewerfe, lege ich dir erstmal einen Artikel
von Kris ans Herz:

http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html


XL
Chris
2010-04-23 13:14:28 UTC
Permalink
Post by Axel Schwenke
Post by Chris
ich musste kürzlich meine MySQL-Datenbank per Dump neu einspielen
lassen über den Provider. Dieser hatte soweit ich erfuhr, automatische
Codierung eingestellt. Leider wurden jedoch die Umlaute nicht korrekt
übernommen und nun falsch angezeigt. Dieses Problem konnte ich auch
nicht durch einen neuen Upload mit entsprechender Latin1- Einstellung,
oder durch Änderung der Codierungsparameter in PHPMyAdmin.
Dieses Kauderwelsch ergibt überhaupt keinen Sinn. Was soll denn bitte
welches Kauderwelsch bitte? vermute eher, dass Du mich nicht korrekt verstanden
hast.
Post by Axel Schwenke
"automatische Codierung" sein? Und was hat phpMyAdmin damit zu tun?
Naja, beim Import eines Dumpfiles kann man doch die zu verwendende
Zeichencodierung angeben und mein Provider hatte da wohl die falsche
ausgewählt (er behauptete etwas von einer Automatischen Auswahl).
Und in PHPMyAdmin kann man ja den Import machen und auch die
Codierung einstellen und dies auch nachträglich in den Tabellen.
Post by Axel Schwenke
Post by Chris
Was kann ich nun tun, damit mir die Datenbankinhalte wieder korrekt angezeigt werden?
Festlegen was du eigentlich willst, rausfinden was tatsächlich da ist
Also nochmal: Die Umlaute in meiner Datenbank werden seit dem Import
durch meinen Provider falsch angezeigt. z.B. sieht "Zubehör" nun so aus
"ZubehÃf¶r".
Eine nachträgliche Änderung der Codierung in PHPMyadmin und den
entsprechenden Tabellen brachte keine Besserung.
und ich hätte das nun wieder so dass die Umlaute korrekt angezeigt werden.
Post by Axel Schwenke
und dann das eine in das andere überführen.
wie geht das?
Post by Axel Schwenke
Ein kleines bischen Grundlagenwissen wäre dafür hilfreich. Bevor ich
das dachte ich eigentlich zu haben.
Post by Axel Schwenke
dich jetzt mit dem Handbuch bewerfe, lege ich dir erstmal einen Artikel
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html
danke, sehe ich mir mal an, aber ob mir das hilft, mein Problem zu lösen?
Post by Axel Schwenke
XL
grüße,

chris
Axel Schwenke
2010-04-23 13:58:28 UTC
Permalink
Post by Chris
Post by Axel Schwenke
Dieses Kauderwelsch ergibt überhaupt keinen Sinn.
welches Kauderwelsch bitte? vermute eher, dass Du mich nicht
korrekt verstanden hast.
Ja. Ich habe dich nicht verstanden, weil das was du schreibst
in meinen Augen keinen Sinn ergibt.
Post by Chris
Post by Axel Schwenke
"automatische Codierung" sein? Und was hat phpMyAdmin damit zu tun?
Naja, beim Import eines Dumpfiles kann man doch die zu verwendende
Zeichencodierung angeben und mein Provider hatte da wohl die falsche
ausgewählt (er behauptete etwas von einer Automatischen Auswahl).
OK. Du meinst mit "Dump" also das, was phpMyAdmin als Backup
schreibt. Andere Leute mögen bei "Dump" eher an mysqldump
denken. Aber gut, das haben wir ja nun geklärt.

Woher kam denn der "Dump" den dein Provider eingespeielt hat?
Vermutlich auch aus phpMyAdmin? Gleiche Version, gleiche
Einstellungen?
Post by Chris
Und in PHPMyAdmin kann man ja den Import machen und auch die
Codierung einstellen
Ich halte das für einen groben Designfehler. Das für den Dump
verwendete Encoding hat gefälligst *im* Dump drin zu stehen.
Also etwa so wie das mysqldump mit SET NAMES macht.
Post by Chris
Post by Axel Schwenke
Post by Chris
Was kann ich nun tun, damit mir die Datenbankinhalte wieder korrekt angezeigt werden?
Festlegen was du eigentlich willst, rausfinden was tatsächlich da ist
Also nochmal: Die Umlaute in meiner Datenbank werden seit dem Import
durch meinen Provider falsch angezeigt. z.B. sieht "Zubehör" nun so aus
"ZubehÃf¶r".
Ich dachte jetzt eigentlich eher an Aussagen, mit welchem
Encoding deine Webseite(?) ihre Daten deklariert. Und wie
die Tabelle deklariert ist (SHOW FULL FIELDS).
Und welches Connection-Encoding dein PHP(?) Skript setzt.
Und ob du evtl. noch irgendwelche Encoding-Magie anwendest
bevor die Daten aus der Datenbank ge-print()-ed werden.

Dem gegenübergestellt das Ergebnis von SELECT HEX(spalte),
damit man sieht wie die Umlaute in der Datenbank stehen.

Obiges sieht in etwa so aus, wie als latin1 interpretiertes
utf8, das ein zweites Mal nach utf8 konvertiert und dann
schließlich doch als latin1 angezeigt wird.
Post by Chris
Post by Axel Schwenke
und dann das eine in das andere überführen.
wie geht das?
Du kannst ein Problem nicht beheben, bevor du es analysiert hast
Post by Chris
Post by Axel Schwenke
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Grundlagen.html
danke, sehe ich mir mal an, aber ob mir das hilft, mein Problem zu lösen?
Schaun wir mal.


XL
Chris
2010-04-27 14:03:21 UTC
Permalink
Post by Axel Schwenke
Post by Chris
Post by Axel Schwenke
Dieses Kauderwelsch ergibt überhaupt keinen Sinn.
welches Kauderwelsch bitte? vermute eher, dass Du mich nicht
korrekt verstanden hast.
in meinen schon. ;)
Post by Axel Schwenke
Post by Chris
Post by Axel Schwenke
"automatische Codierung" sein? Und was hat phpMyAdmin damit zu tun?
Naja, beim Import eines Dumpfiles kann man doch die zu verwendende
Zeichencodierung angeben und mein Provider hatte da wohl die falsche
ausgewählt (er behauptete etwas von einer Automatischen Auswahl).
OK. Du meinst mit "Dump" also das, was phpMyAdmin als Backup
richtig, wird doch allgemein so genannt, wie ich dem netz entnehme.
Post by Axel Schwenke
Woher kam denn der "Dump" den dein Provider eingespeielt hat?
Vermutlich auch aus phpMyAdmin? Gleiche Version, gleiche
Einstellungen?
richtig. da hab ich ihn runtergelaeden und zur Verfügung gestellt
Post by Axel Schwenke
Ich halte das für einen groben Designfehler. Das für den Dump
verwendete Encoding hat gefälligst *im* Dump drin zu stehen.
Also etwa so wie das mysqldump mit SET NAMES macht.
ja, ist aber leider so und das hilft mir nun auch nicht.
Post by Axel Schwenke
Post by Chris
Also nochmal: Die Umlaute in meiner Datenbank werden seit dem Import
durch meinen Provider falsch angezeigt. z.B. sieht "Zubehör" nun so aus
"ZubehÃf¶r".
Ich dachte jetzt eigentlich eher an Aussagen, mit welchem
Encoding deine Webseite(?) ihre Daten deklariert. Und wie
die Tabelle deklariert ist (SHOW FULL FIELDS).
Und welches Connection-Encoding dein PHP(?) Skript setzt.
Und ob du evtl. noch irgendwelche Encoding-Magie anwendest
bevor die Daten aus der Datenbank ge-print()-ed werden.
nö, ich glaub du denkst gewaltig zu kompliziert. ;)

es werden lediglich die Umlaute falsch angezeigt.
Post by Axel Schwenke
Dem gegenübergestellt das Ergebnis von SELECT HEX(spalte),
damit man sieht wie die Umlaute in der Datenbank stehen.
versteh ich nicht, sorry.
Post by Axel Schwenke
Obiges sieht in etwa so aus, wie als latin1 interpretiertes
utf8, das ein zweites Mal nach utf8 konvertiert und dann
schließlich doch als latin1 angezeigt wird.
gut möglich
Post by Axel Schwenke
Post by Chris
Post by Axel Schwenke
und dann das eine in das andere überführen.
wie geht das?
Du kannst ein Problem nicht beheben, bevor du es analysiert hast
ich denke schon, dass das problem analysiert ist.

und nun?

gruß, chris

Lesen Sie weiter auf narkive:
Loading...