Когда вы извлекаете данные из файла # 1, обязательно запустите что-то вроде
$data = utf8_encode($data);
Это гарантирует, что PHP понимает, что он читает, и должен поддерживать кодировку UTF8. После этого вы сможете без проблем перезаписать файл, базу данных и т. Д. Это помогло мне решить проблему при работе с языковыми переводами, где я знаю, что источником является UTF8, но во время перехода PHP хочет сделать его чем-то другим.
Если это не помогло, попробуйте запустить ту же функцию на теле, прежде чем отправлять ее в браузер.