Einzelnen Beitrag anzeigen
  #1  
Alt 04.11.2011, 04:40:03
webmantz webmantz ist offline
Anfänger
 
Registriert seit: Nov 2011
Alter: 59
Beiträge: 1
Probleme mit Umlauten in DB

Hallo,

hoffentlich kann mir jemand weiterhelfen. Ich habe ein Problem mit Umlauten, die ich nicht richtig in eine MySQL-Tabelle kriege. Und zwar stammen die String aus der PHP-Bibliothek imdbphp, mit der man Informationen von den IMDB-Seiten abfragen kann.

Immer wenn ich versuche, einen String, den mir diese Bibliothek liefert, in meine Datenbank zu schreiben, werden alle Umlaute und Sonderzeichen falsch kodiert. Aus "Künstler" wird "Künstler", oder aus "Nimród" wird "Nimród".
Gebe ich den String aber direkt aus, z.B. mit var_dump() oder mit echo, dann werden die Umlaute richtig angezeigt.

Komisch ist auch, wenn ich den "falschen" Wert wieder aus der Datenbank lese und anzeigen lasse, ist auch alles richtig. Trotzdem steht er "falsch" in der Datenbank, eine Suche nach "Künstler" oder "Nimród" liefert kein Ergebnis - weshalb die Sache für mich wirklich problematisch ist.

Versucht habe ich schon vieles: die Datenbank von UTF8 auf LATIN1 umgestellt, die Datenbankverbindung mit SET NAMES und SET CHARSET umgestellt, den String vor dem Schreiben in die DB mit utf8_decode() oder utf8_encode() versucht umzuwandeln, meine PHP-Datei (und auch die imdbphp-Dateien) in verschiedenen Kodierungen gespeichert (DOS, UNIX, U8, ...), etc. Ich habe mein Script sowohl auf einem Linux-Server (wo auch die DB liegt) als auch auf einem Win7-PC mit Apache laufen lassen. Egal was ich mache, ich kriege den String nicht richtig in die Datenbank.

Die MySQL-Datenbank liegt übrigens auf einem Linuxserver (NAS von QNAP) und wird automatisch als UTF8 angelegt. Ich kann zwar einzelne Datenbanken und Tabellen als LATIN1 deklarieren, das ändert aber leider nichts an meinem Problem.

Hoffentlich kann mir noch jemand einen Tip geben, sonst muss ich das mit imdbphp wohl leider bleiben lassen und mich auf die Suche nach einer Alternative begeben. Kennt vielleicht jemand eine solche Alternative?

Danke für eure Hilfe!

Gruß, André
Mit Zitat antworten