Upload-Meta-Daten und UTF-8 Problem
Verfasst: Di 14. Mai 2013, 09:46
Moin,
die Upload-Meta-Daten werden url-codiert und in der Datenbank mit Latin1_German2 gespeichert, also ein ß wird ein %DF und ein ü wird ein %FC.
Das ist ganz nett, wenn die Daten mit urldecode() wieder zurück gelesen werden und die Webseite den üblichen Charaktersatz von Westlich ISO 8859-1 hat.
Aber sowie man die Seite als UTF-8 ausgibt, wird in Contenido einiges umgewandelt und dann erscheinen alle diese Sonderzeichen als schwarze Raute mit Fragezeichen drin (Ersetzungszeichen �).
Packe ich in htmlentities() noch ein utf-8 als Parameter rein, erscheint Text mit Sonderzeichen erst gar nicht mehr.
Lasse ich es wie es ist, kann es sein, dass z.B. der Medianame mit Ersetzungszeichen � erscheint und die Description mit richtigen Sonderzeichen (ä,ö,ü,ß) angezeigt wird.
Mache ich ein inconv(ISO,UTF-8, $string), dann erscheint der Medianame richtig aber die Description hat dafür diese seltsamen UTF-8 Ersatzzeichen ü.
Das lässt für mich den Schluss zu, dass schon in der Datenbank unterschiedliche Charakter-Codes vorhanden sind (egal was die Kollation sagt) und dass dies wahrscheinlich schon bei der Eingabe der Daten so gesetzt wird.
Hat jemand eine Idee, wie man dieses Problem lösen kann?
Contenido wird man ja nicht einfach so ändern können, dass die Daten bei UTF-8 Einstellung auch homogen als utf-8 in der Datenbank landen?
Das urlencode und -decode wird sich aus Gründen der Kompatibilität nicht einfach ersetzen lassen, aber kann man das homogen hin bekommen?
Grüße an alle die schon wach sind,
Faar
die Upload-Meta-Daten werden url-codiert und in der Datenbank mit Latin1_German2 gespeichert, also ein ß wird ein %DF und ein ü wird ein %FC.
Das ist ganz nett, wenn die Daten mit urldecode() wieder zurück gelesen werden und die Webseite den üblichen Charaktersatz von Westlich ISO 8859-1 hat.
Aber sowie man die Seite als UTF-8 ausgibt, wird in Contenido einiges umgewandelt und dann erscheinen alle diese Sonderzeichen als schwarze Raute mit Fragezeichen drin (Ersetzungszeichen �).
Packe ich in htmlentities() noch ein utf-8 als Parameter rein, erscheint Text mit Sonderzeichen erst gar nicht mehr.
Lasse ich es wie es ist, kann es sein, dass z.B. der Medianame mit Ersetzungszeichen � erscheint und die Description mit richtigen Sonderzeichen (ä,ö,ü,ß) angezeigt wird.
Mache ich ein inconv(ISO,UTF-8, $string), dann erscheint der Medianame richtig aber die Description hat dafür diese seltsamen UTF-8 Ersatzzeichen ü.
Das lässt für mich den Schluss zu, dass schon in der Datenbank unterschiedliche Charakter-Codes vorhanden sind (egal was die Kollation sagt) und dass dies wahrscheinlich schon bei der Eingabe der Daten so gesetzt wird.
Hat jemand eine Idee, wie man dieses Problem lösen kann?
Contenido wird man ja nicht einfach so ändern können, dass die Daten bei UTF-8 Einstellung auch homogen als utf-8 in der Datenbank landen?
Das urlencode und -decode wird sich aus Gründen der Kompatibilität nicht einfach ersetzen lassen, aber kann man das homogen hin bekommen?
Grüße an alle die schon wach sind,
Faar