PHP не применяет кодировку для записи в Excel
Пробовал и mb_convert_encoding($str, 'windows-1251', mb_detect_encoding($str), и iconv, и stream_filter_append($fp, 'convert.iconv.utf-8.cp1251', STREAM_FILTER_WRITE);, и просто в header дописать кодировку, но в Excel всё равно записываются русские символы в неверной кодировке. Файл с кодом в кодировке UTF-8. Excel создаётся и скачивается так:
$nameFile = 'some.xls';
//$fp = fopen('php://memory', 'w');
//stream_filter_append($fp, 'convert.iconv.utf-8.cp1251', STREAM_FILTER_WRITE);
$handle = fopen("php://output", "w");
header ( "Content-type: application/vnd.ms-excel" );
header ( "Content-Disposition: attachment; filename=".$nameFile );
$str = "Привет";
$str = mb_convert_encoding($str, 'windows-1251', mb_detect_encoding($str));
$rows= "<tr><th>$str</th><td>Hello</td></tr>";
echo "<table>
$rows
</table>";
fclose($handle);
exit();