Chybná hlavička HTTP Content-Type u CSV souboru
I u CSV souboru se správným kódováním UTF-8
vystaveném na webu se může stát, že se diakritika v takovém souboru v prohlížeči nebude zobrazovat správně.
Pravděpodobně je na vině špatná HTTP hlavička Content-Type
v odpovědi se souborem, která by správně měla kódování obsahovat: Content-Type: text/csv; charset=utf-8
.
Vyskytují se ale případy, kdy v hodnotě kódování chybí, tj. Content-Type: text/csv
, a tedy prohlížeč neví, že má zobrazovat kódování UTF-8, a nebo je dokonce indikován špatný typ, například Content-Type: text/plain
nebo Content-Type: application/octet-stream
.
Obecnější informace o tomto tématu naleznete v sekci na téma Chybná hlavička HTTP Content-Type.
Řešení
Je třeba nakonfigurovat webový server tak, aby soubory CSV poskytoval se správnou hlavičkou, tj. Content-Type: text/csv;charset=utf-8;header=present
v případě CSV s hlavičkou a Content-Type: text/csv;charset=utf-8;header=absent
v případě CSV bez hlavičky, které ale nedoporučujeme používat.
Například pro webový server nginx
je třeba použít v konfiguraci types { „text/csv;charset=utf-8;header=present“ csv; }
- uvozovka zde má být běžná dvojitá uvozovka, nikoliv horní a dolní.