Для тех, кто занимается этим:
Время, которое я потратил на вопросы кодирования, научило меня, что редко php-функции «волшебным образом» изменяют кодировку строк. (Один из этих редких примеров:
exec( $command, $output, $returnVal )
Обратите внимание, что рабочий набор заголовков выглядит следующим образом:
header('Content-Type: text/html; charset=utf-8');
а не:
header('Content-Type: text/html; charset=UTF-8');
Поскольку у меня была проблема, аналогичная той, которую вы описываете, этого было достаточно, чтобы правильно установить заголовки.
Надеюсь, это поможет!