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
Upload-Meta-Daten und UTF-8 Problem
-
- Beiträge: 1951
- Registriert: Sa 8. Sep 2007, 16:23
- Wohnort: Brandenburg
- Hat sich bedankt: 15 Mal
- Kontaktdaten:
Upload-Meta-Daten und UTF-8 Problem
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
-
- Beiträge: 1951
- Registriert: Sa 8. Sep 2007, 16:23
- Wohnort: Brandenburg
- Hat sich bedankt: 15 Mal
- Kontaktdaten:
Re: Upload-Meta-Daten und UTF-8 Problem
Es gibt keine Lösung, außer der, dass man alle Text-Daten nochmal überarbeitet.
Durch nachträgliche Umschaltung auf utf-8 gibt es heterogene Charaktersatz Zuweisungen.
Je nachdem ob die Daten vor der Umschaltung oder nach der Umschaltung eingegeben wurden, sind sie mal ISO 8859 und mal UTF-8.
Ich kenne noch keine praktikable Lösung, wie man am Zeichen programmtechnisch erkennen könnte, ob ein Zeichen utf-8 ist oder iso.
Denkbar wäre eine Quersumme über die Anzahl Zeichen und wenn es mehr sind als abgespeichert wurde, muss man umwandeln. Aber in welche Richtung?
Angenommen ü wäre ein utf-8 ü, dann könnte man alleine an der Anzahl erkennen, dass es nicht stimmt.
Aber woher weiß das Programm die Anzahl?
Oder aber das Ersetzungszeichen dürfte als Code erkennbar sein: if(�==$strg)
Aber wo führt das hin?
Ich spekuliere mal, dass nachträgliche Umwandlungen des CMS in UTF-8 anders gehandhabt werden müssten.
Und dass es eher in Wissenschaft hinaus läuft, statt in praktikabler Lösung.
Oder hat jemand positive Erfahrung mit Datenmix und heterogenen Charaktersätzen in ein und der selben Tabellenspalte?
Durch nachträgliche Umschaltung auf utf-8 gibt es heterogene Charaktersatz Zuweisungen.
Je nachdem ob die Daten vor der Umschaltung oder nach der Umschaltung eingegeben wurden, sind sie mal ISO 8859 und mal UTF-8.
Ich kenne noch keine praktikable Lösung, wie man am Zeichen programmtechnisch erkennen könnte, ob ein Zeichen utf-8 ist oder iso.
Denkbar wäre eine Quersumme über die Anzahl Zeichen und wenn es mehr sind als abgespeichert wurde, muss man umwandeln. Aber in welche Richtung?
Angenommen ü wäre ein utf-8 ü, dann könnte man alleine an der Anzahl erkennen, dass es nicht stimmt.
Aber woher weiß das Programm die Anzahl?
Oder aber das Ersetzungszeichen dürfte als Code erkennbar sein: if(�==$strg)
Aber wo führt das hin?
Ich spekuliere mal, dass nachträgliche Umwandlungen des CMS in UTF-8 anders gehandhabt werden müssten.
Und dass es eher in Wissenschaft hinaus läuft, statt in praktikabler Lösung.
Oder hat jemand positive Erfahrung mit Datenmix und heterogenen Charaktersätzen in ein und der selben Tabellenspalte?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.