Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Eksport danych do pliku .csv
marcinek37
post
Post #1





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

Ostrzeżenie: (0%)
-----


  1. <?
  2. header('Content-disposition: filename='.date('Y-m-d', time()).'.csv');
  3. header('Content-Type: application/csv; charset=utf-8');
  4. header("Content-Transfer-Encoding: charset=utf-8");
  5.  
  6. // tutaj tworzy się zmienna $cvs z danymi
  7.  
  8. echo $csv;
  9. ?>


wszystko dobrze się eksportuje, ale brakuje polskich znaków, gdy włącza się plik w Excellu - dlaczego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
_Borys_
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


Ponieważ w Excellu jest inne kodowanie, windows-1250 jak się nie mylę.
Go to the top of the page
+Quote Post
sabat24
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Jeśli to excel 2003 (XP), to musisz kodować znaki pod Windowsa. Ja używam takiej funkcji:
  1. public function convert_locale_for_xls ($text) {
  2. $return = iconv('UTF-8', 'cp1250', $text);
  3. return preg_replace("/([\xC2\xC4])([\x80-\xBF])/e", "chr(ord('\\1')<<6&0xC0|ord('\\2')&0x3F)", $return);
  4. }

Mi nic innego mi nie pomogło.

W przypadku 2007 to ponoć pomaga wstawienie bomu na początku pliku, przed wrzucaniem danych - nie testowałem, bo dla wersji 2003 nie działało.
  1. fputs($file, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));

Excel ma / miał ogólnie problemy ze znakami w UTFie - możesz poszperać jeszcze w necie, bo jest sporo na ten temat. W późniejszych wersjach niby jest lepiej.
Go to the top of the page
+Quote Post
marcinek37
post
Post #4





Grupa: Zarejestrowani
Postów: 239
Pomógł: 0
Dołączył: 2.06.2011

Ostrzeżenie: (0%)
-----


pierwsza funckja działa bez zarzutu!
dziękuję!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:10