verschiedene Codierungen in UTF-8 umwandeln

fast-server

Grünschnabel
Hallo an alle,

ich bin kurz vorm verzweifeln, weil ich nun schon 2-3 Tage an dem Problem hänge. Es ist deshalb so blöd, weil ich IPTC-Daten aus Bildern einlese und diese dann in DB speichere usw. Nun sollten alle in die DB in UTF-8 sonst gibt es wieder Probleme. Die Daten kann ich ja nicht mit einem Texteditor anschauen und darum ist das ganze ja so blöd. Ich sehe das ganze erst nach dem Programm-durchlauf in der DB was ich daraus gerechnet habe. Irgendwie habe ich da 2 - 4 verschiedene Darstellungen am Bildschirm und dann bekomme ich noch manche als UTF8 am Bildschirm gezeigt zB. ü = ü.
Das Problem ist dass die Daten über Jahre mit x verschiedenen Bildeditoren bearbeitet sind.

Ein Lösungsvorschlag war mal:
PHP:
/**************Umlautproblem - utf8************************************************************************/
               $bad_char=array("Š","š","Ÿ","€","…","†","§","ä","ö","ü","Ä","Ö","Ãœ","ß");
               $right=array   ('ä','ö','ü','Ä','Ö','Ü','ß','ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß');
               $title  = str_replace($bad_char,$right,(utf8_decode(html_entity_decode($title, ENT_NOQUOTES))));
               $caption  = str_replace($bad_char,$right,(utf8_decode(html_entity_decode($caption, ENT_NOQUOTES))));
               $keywords  = str_replace($bad_char,$right,(utf8_decode(html_entity_decode($keywords, ENT_NOQUOTES))));
/**************ende****************************************************************************************/

besten Dank und
lg loisl
 
Wenn du die tatsächlich verwendete Zeichenkodierung bzw. den Zeichensatz nicht kennst, ist es schwierig, diese zuverlässig zu ermitteln.
Deine Aussage „ü = ü“ deutet aber darauf hin, dass die Daten zwar mit UTF-8 kodiert sind, diese aber als ISO 8859-1 interpretiert werden, oder aber doppelt mit UTF-8 kodiert sind. Das kann aber nur ein Blick auf die Byte verraten.
 
Danke erst einmal .... werde mal weiter Ideen sammeln .....
das ist das jetzige Ergebnis ?
 

Anhänge

  • tb.jpg
    tb.jpg
    31,7 KB · Aufrufe: 71
Erledigt ....

hab es gelöst ... das Problem an den falsch interpretierten z.B. ü liegt daran, dass es nur so aussieht wie utf-8 (da werden die "beiden Zeichen" als eines interpretiert) aber in Wirklichkeit sind in meiner DB zwei Zeichen "Ã" "¼".

lg und gute8
loisl
 
Mh das problem ist damit aber nicht gelöst sondern nur quick and dirty umgangen.
Bitte lies mal im Manual nach und zwar den Punkt utf8_decode bzw. utf8_encode.
Ausserdem musst du darauf achten dass deine Datenbank und dein HTML mit dem richtigen Zeichensatz (utf8) arbeiten!
Sonst wird das Problem ziemlich schnell wieder bei anderen Usern auftreten!
 
Hi Da_Chris,

genau das war ja mein Ärger und deshalb will ich jetzt unbedingt saubere Daten... ich bin gerade umgezogen mit einer Bilder-Datenbank (über 10000 Bilder) vor 2 Jahren wusste ich den unterschied von latin1 und utf8 noch nicht und erst nach einiger Zeit habe ich die DB-Felder nach den Umlaut-Problemen im Suchfeld auf utf-8 umgestellt ... html lief auf utf-8 .... aber das mit dem nachträglichen ändern der DB-Felder funktioniert ja nicht richtig und das Problem wurde nie richtig behoben. Nun nach dem Umzug klappte dann auf einmal auch die Umlaut-Suche korrekt.

Nachdem ich jetzt eine saubere UTF-8 DB, ein korrektes HTML gerade fertig bastle (theme muss ich heute noch machen) kann ich mich nun an die Bilder machen. Ich habe mich (seit Jahren) dazu entschlossen die Bilder für die Internet-DB mit fest eingerechnetem Wasserzeichen zu verwenden .... dazu habe ich nettes Skript für PS das die Bildgrösse und das Wasserzeichen (und noch andere Dinge) automatisiert hat. Nun hat sich die Grösse und das Wasserzeichen etwas in neuen Design verändert und ich muss ca. 15.000 pix neu berechnen ... das läuft ja relativ einfach ab nur die IPTC manuell zu prüfen wäre Wahnsinn, da auch nahezu jedes Bild eine andere Beschriftung hat.

Wenn alle Systeme mit der GLEICHEN Kodierung arbeiten ist eine spätere Sicherung oder ein Umzug auf einen anderen Server kein grosser Akt mehr .... kann innerhalb weniger Minuten zurückgesichert werden! Deshalb betreibe ich im Vorfeld einen solchen Aufwand um hinterher ein ein Wartungsfreundliches System zu haben

Viele Liebe Grüsse
loisl
 
Ah naja hatte überlesen das es sich hierbei um bilder handelt.
Text im Browser wär nochmal ne andere Geschichte...
 
Ja, das ist ja das grössere Problem .... den Bildern liegen die Infos (die ich mal geschrieben habe) wie "welche Personen sind auf dem Foto, Veranstaltungsort, Ort, Land, Datum, Fotograf" als Textdaten bei ... lassen sich auch nur wieder mit einigen Bildeditoren öffnen. Diese Daten lese ich nun wieder aus und speichere sie als Textdaten in einer DB, damit diese mit dem Bild dem html-Browser zur Verfügung stehen.....

Also das Problem bleibt gleich oder eher noch grösser weil man die Textdaten nicht so einfach greifen kann

lg
 
Zurück