hallo!
Ich hab ein Problem bei der Zeichencodierung von Exif-Daten. Sie werden alle als ISO-8859-15 ausgeliefert statt als UTF-8.
Die Seite ist in UTF-8(ohne BOM) gespeichert und wird laut Opera-Info auch als UTF-8 ausgeliefert jedenfalls werden die restlichen Umlauten korrekt angezeigt.
Stelle ich die Codierung in Opera auf ISO-8859-15 dann werden die EXIF-Daten korrekt angezeigt dafür die restlichen Umlaute falsch.
Codeauszug:
$exif = exif_read_data($pfad);
echo $exif['ImageDescription']
erzeugt dies;
"sch�nes st�ck"
Sollte aber "schönes stück" heissen.
Ok dann setzen wir folgenden Wert (mit Kontrollausgabe):
var_dump(ini_get('exif.encode_unicode'));
ini_set('exif.encode_unicode', "UTF-8");
var_dump(ini_get('exif.encode_unicode'));
erzeugt folgende Ausgabe:
string(11) "ISO-8859-15"
string(5) "UTF-8"
-> ok zuerst war ISO-8859-15 danach UTF-8 soweit so gut.
Auf ein weiteres
echo $exif['ImageDescription']
erzeugt dies;
"sch�nes st�ck"
Sollte aber "schönes stück" heissen.
Überprüfung in welcher Codierung die Daten Ankommen
var_dump(mb_detect_encoding($exif['ImageDescription']));
erzeugt folgende Ausgabe:
string(5) "UTF-8"
hmm eigentlich sollte doch alles stimmen. Wo liegt der Fehler?
grüsse.