Выгрузка в CSV — самый простой и быстрый вариант отдачи табличного содержимого пользователю. К сожалению здесь, как и во многих других случаях также присутствует проблема кириллического контента. Но, к счастью, решить её достаточно просто.
Итак, перед отдачей контента нужно выполнить следующие действия:
header('Content-Encoding: UTF-8'); header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment; filename=Customers_Export.csv'); echo "\xEF\xBB\xBF"; // UTF-8 BOM
Код был найден здесь и успешно применен на практике. Метод 100% рабочий без дополнительного применения перекодировки строк и ему подобных методов.