marcinek37
5.05.2013, 17:02:19
Skrypt generuje plik .csv, który ucina się podczas jego ładowania w Excel wtedy, gdy wystąpi znak specjalny, np. °
Jak wiadomo, znaków specjalnych jest mnóstwo, więc zwyczajne str_replace nie wystarczy
próbowałem z htmlenties, jednak żaden z parametrów nie rozwiązał mojego problemu
więc co mogę zrobić?
Arcioch
5.05.2013, 17:43:49
Pokaż kod w jaki sposób zapisujesz dane do csv i tablice jaką próbujesz zapisać
marcinek37
5.05.2013, 18:28:39
to nie ma znaczenia, plik .csv generuje się prawidłowo, w nowym office ładuje się bez problemu, ale starsze wersje wariują przez znaki specjalne, np. taki, jak podałem powyżej
chciałbym poznać nazwę funkcji, która każdy znak specjalny odpowiednio przerobi, np.
° -> &XXXXX;
urlencode przerobi Ci to na coś takiego, ale zamieni też polskie znaki, spacje, więc nie wiem czy to Ci się przyda.
marcinek37
5.05.2013, 22:16:43
no właśnie coś takiego też raczej odpada
ma ktoś inny pomysł?
A co jest nie tak z htmlentities? U mnie wydaje się ok.
° => °
marcinek37
6.05.2013, 06:31:26
a jakie ustawiasz parametry tej funkcji?
bo jak używam ten funkcji, ucina polskie znaki, nie widać ich nawet, gdy odtwarzam plik w notatniku
marcinek37
6.05.2013, 22:22:26
gdy używam tego kodu, który dałeś powyżej, np. ten znak ° nie pokazuje się (po prostu jest ucinany), a cały plik zapisuję jako utf-8, bo używam:
header('Content-disposition: filename='.date('Y-m-d', time()).'.csv'); header('Content-Type: application/csv; charset=utf-8'); header("Content-Transfer-Encoding: charset=utf-8");
gdy tego kodu nie używam, znak stopni celcjusza pokazuje się, ale znowu nie jest czytany przez starszy Office...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.