Mam tę bardzo prostą rzecz, która po prostu wyświetla niektóre pliki w formacie CSV, ale musi to być UTF-8. Otwieram ten plik w TextEdit lub TextMate lub Dreamweaver i wyświetla on poprawnie znaki UTF-8, ale jeśli otworzę go w Excelu, robi to głupio. Oto, co mam na początku mojego dokumentu:
header("content-type:application/csv;charset=UTF-8");
header("Content-Disposition:attachment;filename=\"CHS.csv\"");
Wszystko to wydaje się mieć pożądany efekt, z wyjątkiem tego, że Excel (Mac, 2008) nie chce go poprawnie importować. W Excelu nie ma opcji „otwarcia jako UTF-8” ani czegoś takiego, więc… Trochę się denerwuję.
Nie mogę znaleźć nigdzie jasnych rozwiązań tego problemu, mimo że wiele osób ma ten sam problem. Najbardziej widzę dołączenie BOM, ale nie mogę dokładnie wymyślić, jak to zrobić. Jak widać powyżej, właśnie wprowadzam echo
te dane, nie piszę żadnych plików. Mogę to zrobić, jeśli zajdzie taka potrzeba, po prostu nie jestem, ponieważ w tym momencie nie wydaje się to potrzebne. Jakaś pomoc?
Aktualizacja: Próbowałem odtworzyć BOM, echo pack("CCC", 0xef, 0xbb, 0xbf);
który właśnie ściągnąłem ze strony, która próbowała wykryć BOM. Ale program Excel po prostu dodaje te trzy znaki do pierwszej komórki podczas importowania i nadal miesza znaki specjalne.