Я создаю файл csv с помощью следующих команд заголовка:
header("Content-type: text/csv; charset=utf-8; encoding=utf-8");
header('Content-Disposition: attachment; filename="products.csv"');
Если я открою файл в Excel 2007, тогда я получу знак £, где бы ни появился знак £. Однако, если я открою файл в Notepad ++, то знаки фунта будут выглядеть нормально; точно так же, если я изменю тип содержимого на text / plain и избавлюсь от заголовка вложения, в браузере правильно отображаются знаки фунта.
Одна странная вещь состоит в том, что, если я захожу в меню «Формат» в Notepad ++, оказывается, что файл закодирован в «UTF-8 без BOM». Если я изменю это на «Кодировать в UTF-8», а затем сохраню файл, знаки фунта будут отображаться правильно в Excel. Есть ли способ сделать так, чтобы файл сохранялся в этой кодировке PHP?