Hi!
Wenn das die gleiche Ausgabe wie oben liefert, dann bringt dir diese Option nichts, und dir wird vermutlich nichts bleiben, als zu Fuß umzukodieren.
von Hand? also bsp mit utf8_encode()? Dann stimmt die Ausgabe. Aber was ist wenn ein file die Exif-Daten trotzdem in UTF-8 liefert? Dann geht wieder alles flöten und auf mb_detect_encoding() scheint auch kein verlass zu sein.
Die ImageDescription ist gemäß EXIF-Spezifiktion wohl immer ASCII, las ich gerade in ihr. Der UserComment ist variabel, aber es wird irgendwo angegeben, was vorliegt. Diese Information solltest du auszuwerten versuchen und alles müsste gut gehen, theoretisch. Abweichungen davon kann es natürlich geben, wenn irgendwer da Mist reinschreibt, aber das wäre im Prinzip nicht deine Aufgabe das zu korrigieren zu versuchen. Denn das ist nicht so einfach, besonders bei kurzen Texten. Ein Mensch kann interpolieren und das falsch kodierte Zeichen recht häufig richtig erraten, aber bring das mal einen Rechner bei. Aus lediglich einer Bytefolge lässt sich jedenfalls keine Kodierung erkennen. Einige Indizien können mit mehr oder weniger Wahrscheinlichkeit auf eine Kodierung hindeuten. Mehr ist aber nicht drin. mb_detect_encoding() schwindelt schon mit seinem Funktionsnamen, denn auch das kann nur mit Wasser kochen. try_to_detect oder guess wäre angemessener.
Wenn in einem String Zeichen Bytewerte oberhalb von 0x7F vorkommen, und diese eine gültige UTF-8-Bytesequenz ergeben, kann man annehmen, dass es sich um UTF-8 handele. Wenn nicht, wird es ISO-8859-irgendwas sein oder vielleicht was Asiatisches, je nach Herkunft der Information.
Lo!