Очень часто нужно создавать php файлы, например для хранения настроек или xml и csv файлы в кодировке UTF-8. И зачастую ее советуют решать просто перекодировкой с помощью icnov(). Но в таком случае мы задаем кодировку только для строк, а не для всего файла. Чтобы кодировка всего файла была utf-8 впишите в начале «\xEF\xBB\xBF».

$file = fopen('file.php', 'w');
fwrite($file, "\xEF\xBB\xBF", 3);//UTF-8
fwrite ($file, 'Привет!'); fclose($file);

И не забудьте, если скрипт который создает файл или переменная где хранятся данные в кодировке “ANSI” или “windows-1251”, перекодируйте с помощью функции icnov.

$file = fopen('file.php', 'w');
fwrite($file, "\xEF\xBB\xBF", 3);//UTF-8
fwrite ($file, icnov ('windows-1251','utf-8', 'Привет'));
fclose($file);