Při odesílání binárních souborů vždy přemýšlejte, jaké HTTP hlavičky zvolit. V případě odeslání CSV souboru (téměř ideální formát pro jednoduché textové tabulky, které umí zpracovat i Excel) se hodí `Content-Type: application/csv`, v kódování `UTF-8`.
V některých verzích Excelu však dochází k problému s kódováním UTF-8. Abychom si detekci správného kódování pojistili, je potřeba do souboru vložit tzv. UTF-8 BOM
, což je speciální znak "\xEF\xBB\xBF"
, který klientovi říká, že jde o UTF-8, jelikož v jiném kódování neexistuje.
Hlavičky proto pošlete takto:
header('Content-Type: application/csv; charset=utf-8');header('Content-Disposition: attachment; filename=' . date('d-m-Y') . '_file.csv');header('Pragma: no-cache');echo "\xEF\xBB\xBF";
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs