Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHPExcelReader i problem z ogonkami
peters2004
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.10.2014

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


Cześć.
Mam stronę pod Joomla 3.x, w swoim module musiałem czytać pliki excela, standardowo użyłem biblioteki PHPExcelReader.
Działało całkiem nieźle, ale np tekst "Trzebieszów" był konwertowany źle - przy czym wszystkie polskie ogonki OK - ważna była kombinacja "zó".
Teraz potrzebuję czytać czeskie znaki i kolejny błąd. Gdzieś czytałem, by zmienić w pliku PHPExcelReader linię:

  1. case 'iconv' : $result = iconv('UTF-16LE', $this->_defaultEncoding, $string);


na

  1. case 'iconv' : $result = iconv('UTF-16LE', 'iso-8859-2', $string);


Zaczęło działać OK, ale musiałem ręcznie przestawiać w przeglądarce kodowanie strony. Oczywiście reszta napisów była do luftu.
Dalej dodałem jeszcze linię:

  1. $result = iconv('iso-8859-2', 'UTF-8', $result);


Niestety znów źle. Ma ktoś jakiś pomysł ?

Pozdrawiam

Go to the top of the page
+Quote Post
jacobson
post
Post #2





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


sprobuj dodac utf8_encode przy pierwszym stringu, też miałem podobny problem i obyło się bez jakichkolwiek iconv-ów
Go to the top of the page
+Quote Post
peters2004
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.10.2014

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


A możesz nieco dokładniej?
Spróbowałem tak, ale jakieś chińskie znaczki widzę (IMG:style_emoticons/default/smile.gif)

  1. $result = iconv('UTF-16LE', 'UTF-8', utf8_encode ($string));
Go to the top of the page
+Quote Post
jacobson
post
Post #4





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


jezeli sprawdzisz i plik ktory wgrywasz masz w utf-8 ale wciaz widzisz dziwne znaczki to odkoduj go przez utf8_encode bez iconva i powinno byc ok, u mnie przynajmniej bylo (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
peters2004
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 6.10.2014

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


Sprawdziłem i plik xls, zapisany za pomocą OO jest w UTF16

Problem rozwiązany.
Faktycznie, problem był w tym, że niektóre komórki były w UTF16 a inne e windows-1250.
Błąd był zupełnie w innym miejscu. Nie dekodowano komórek w windows-1250, stąd też ten pierwszy błąd.

Dla zainteresowanych:
zamiast
  1. $retstr = ($asciiEncoding) ? $retstr : $this->_encodeUTF16($retstr); $retstr.

wstawić:
  1. if($asciiEncoding) $retstr=iconv('WINDOWS-1250', 'UTF-8', $retstr); else $retstr=$this->_encodeUTF16($retstr);
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:17