ebody,
bist Du sicher, dass Du mit deinem PHP Script eine gültige UTF-8 Datei erzeugst? Da PHP der Umgang mit Multibyte-Zeichensätzen nicht in die Wiege gelegt wurde, kann sowas schonmal schiefgehen.
Besonderes Augenmerk muss man auf Zeichen richten, die in der Latin-1 Codepage (ISO 8859-1) einen Code zwischen 0x80 und 0xFF haben. Die müssen in einer UTF-8 Datei bereits in zwei Bytes dargestellt werden.
Rolf