Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kodowanie polskich znaków PHP
david8213
post
Post #1





Grupa: Zarejestrowani
Postów: 308
Pomógł: 0
Dołączył: 9.12.2009

Ostrzeżenie: (10%)
X----


mam funkcję która wyświetla mi krzaki zamiast polskich znaków

zamieniałem już UTF-16LE na iso-8859-2, utf-8, cp1250 ale bez skutu - Ciągle krzaki

proszę o pomoc

Kod
    function _encodeUTF16($string) {
        $result = $string;
        if ($this->_defaultEncoding){
            switch ($this->_encoderFunction){
                case 'iconv' :     $result = iconv('UTF-16LE', $this->_defaultEncoding, $string);
                                break;
                case 'mb_convert_encoding' :     $result = mb_convert_encoding($string, $this->_defaultEncoding, 'UTF-16LE' );
                                break;
            }
        }
        return $result;
    }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
lucaa44
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 26.05.2007

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


mam podobny problem....

moze ktos mnie utwierdzi w przekonaniu: gdy na danej stronie mam kodowanie ustawione w znaczniku html /meta/ na iso-8859-2 to string zaladowany z pliku zewn(przez ta strone) zakodowany w utf-8 zostanie na pewno, bez wyjatku wyswietlony na tej stronie z 'krzakami'... i tutaj rozwiazaniem moze byc ustawienie /meta/ na utf-8, lub konwersja przez funkcje mb zaladowanego stringu do tego samego kodowania co jest w meta czyli iso-8859-2..dobrze mysle?
Go to the top of the page
+Quote Post
mls
post
Post #3





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Cytat(david8213 @ 14.02.2012, 16:34:34 ) *
mam funkcję która wyświetla mi krzaki zamiast polskich znaków

zamieniałem już UTF-16LE na iso-8859-2, utf-8, cp1250 ale bez skutu - Ciągle krzaki


Szukasz nie tam gdzie trzeba (IMG:style_emoticons/default/wink.gif) Zakładam, że chodzi o klasę php-excel-reader.
Jeśli tak, zmień linię bodajże 1120 z
  1. $retstr = ($asciiEncoding) ? $retstr : $this->_encodeUTF16($retstr);

na
  1. $retstr = ($asciiEncoding) ? $this->_encodeStandard($retstr) : $this->_encodeUTF16($retstr);

oraz dopisz do klasy funkcję
  1. function _encodeStandard($string) {
  2. $result = $string;
  3. if ($this->_defaultEncoding) {
  4. switch ($this->_encoderFunction) {
  5. case 'iconv':
  6. $result = iconv('cp1250', $this->_defaultEncoding, $string);
  7. break;
  8. case 'mb_convert_encoding':
  9. $result = mb_convert_encoding($string, $this->_defaultEncoding, 'cp1250');
  10. break;
  11. }
  12. }
  13. return $result;
  14. }


Dla polskich arkuszy zadziała idealnie.

EDIT
Dopiero zauważyłem, że odpowiedziałem na posta sprzed paru miesięcy. No cóż, może komuś się to przyda tak czy owak (IMG:style_emoticons/default/wink.gif)

Ten post edytował mls 30.06.2012, 22:42:50
Go to the top of the page
+Quote Post
modern-web
post
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Powiedzcie mi... dlaczego iso-8859-2? Czy jeszcze nie wiecie, że standardem jest utf-8?

Co do Waszego problemu, kodowanie strony to jedno, jeśli dane znajdują się w bazie danych - najlepiej by miały ten sam prefix (utf-8/16/32 itp...), wyświetlając dane które w bazie zapisane są w utf-8 na stronie o kodowaniu iso-8859-2 musicie zastosować iconv. Program w którym tworzycie kod również ma znaczenie - upewnijcie się, że nie jest to notatnik i nie zapisujecie plików w ASCII (IMG:style_emoticons/default/wink.gif)

Czego jeszcze nie wiecie?

p.s.
to jest odpowiedź dla lucaa44 (IMG:style_emoticons/default/smile.gif)

Ten post edytował modern-web 30.06.2012, 22:46:07
Go to the top of the page
+Quote Post
lucaa44
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 26.05.2007

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


witam, z gory dzieki za podpowiedz :] (niektore moje posty na tym forum wogole nie doczekaly sie odpowiedzi:>)

dlaczego iso-8859-2? nie wiem moze przyzwyczajenie, moze troche zacofanie, nie bez znaczenia byly tez problemy z edytorem ktory nie radzil sobie z zapisem w utf-8...poza tym dobry powod zeby przetestowac funkcje konwertujace takie jak iconv, jak dotad nie mialem zadnych problemow z ogonkami chociazby w bazach danych, do teraz..wyskoczyl problem z plikami

apropo Twojego rozwiazania:

- nie chodzi o dane z bazy danych, ale z pliku zewn

Cytat
wyświetlając dane które w bazie zapisane są w utf-8 na stronie o kodowaniu iso-8859-2 musicie zastosować iconv


ok, wyswietlam na stronie o kodowaniu iso-8859-2 dane z pliku ktore sa zapisane w nim w utf-8, stosuje funkcje iconv() i mb_*() i nic to nie daje -> krzaki

Cytat
Program w którym tworzycie kod również ma znaczenie - upewnijcie się, że nie jest to notatnik i nie zapisujecie plików w ASCII


uzywam pspad'a , plik skryptu ktory pobiera dane z pliku zewn i je wyswietla jest zapisany w iso-8859-2 (zreszta edytor jest nastawiony tak by wszystkie pliki zapisywal w iso-8859-2) i nadal -> krzaki

troche bardziej szczegolowo(moze nie idealnie) problem opisalem tu: problem z konwersja utf-8 do iso-8859-2

moze ktos wie co z tym zrobic?

Pozdrawiam
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: 22.08.2025 - 21:46