Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Polskie znaki
Forum PHP.pl > Forum > Przedszkole
Konop857
Mam problem z polskimi znakami, i od razu chciałbym zaznaczyć że czytałem ten przyklejony temat o polskich znakach lecz mi nie pomogło.
Sprawa wygląda następująco, na XAMPP-ie mam w plikach php ustawione windows-1250 a w bazie danych nawet nie wiem jak sprawdzić bo to jakaś stara wersja.
No i jak pisze ręcznie to dzięki windows-1250 ładnie wyświetla, a jak chcę pobrać jakiś tekst z bazy danych używam :
  1. function translate($in)
  2. {
  3. $CONV = array();
  4. $CONV['c4']['85'] = 'ą';
  5. $CONV['c4']['84'] = 'Ą';
  6. $CONV['c4']['87'] = 'ć';
  7. $CONV['c4']['86'] = 'Ć';
  8. $CONV['c4']['99'] = 'ę';
  9. $CONV['c4']['98'] = 'Ę';
  10. $CONV['c5']['82'] = 'ł';
  11. $CONV['c5']['81'] = 'Ł';
  12. $CONV['c4']['84'] = 'ń';
  13. $CONV['c4']['83'] = 'Ń';
  14. $CONV['c3']['b3'] = 'ó';
  15. $CONV['c3']['93'] = 'Ó';
  16. $CONV['c5']['9b'] = 'ś';
  17. $CONV['c5']['9a'] = 'Ś';
  18. $CONV['c5']['ba'] = 'ź';
  19. $CONV['c5']['b9'] = 'Ź';
  20. $CONV['c5']['bc'] = 'ż';
  21. $CONV['c5']['bb'] = 'Ż';
  22.  
  23. $i=0;
  24. $out = '';
  25. while($i<strlen($in))
  26. {
  27. if(array_key_exists(bin2hex($in[$i]), $CONV))
  28. {
  29. $out .= $CONV[bin2hex($in[$i])][bin2hex($in[$i+1])];
  30. $i += 2;
  31. }
  32. else
  33. {
  34. $out .= $in[$i];
  35. $i += 1;
  36. }
  37. }
  38.  
  39. return $out;
  40. }

I wszystko działa jak należy.
Na hostingu pojawiają się problemy, pliki mam te same (windows-1250), bazę danych wyexportowałem z Xamppa i wkleiłem do phpmyadmina na hostingu.
Na hostingu mam kodowanie latin1_swedish_ci i teraz zamiast ładnego tekstu z bazy danych wyświetlają mi się jakieś znaki zapytania.
Dodam że nawet edytując ręcznie w phpmyadmin nie mogę dodać polskiego znaku bo wyskakuje coś takiego:
Cytat
Zmodyfikowanych rekordów: 1.
Warning: #1366 Incorrect string value: '\xC5\x82' for column 'tekst' at row 1

Jak dam na stronie kodowanie utf-8 to to co wpiszę ręcznie to wyświetla jakieś kwadraty skolei zamiast znaków.

Jak to rozegrać =/?

Proszę o pomoc
Pozdrawiam
potreb
Powiem ci jak rozegrać. Przy takich krzakach to robisz żeby w bazie się zgadzało w plikach itd. Skoro robisz pseudo konwersje znaków, to co w przypadku innych znaków narodowych? Wiem, że to nie rozwiązanie, ale jak ja miałem problem z kodowaniem poprawiłem całość niż bawiłem się z pseudo zamiennikiem.

PS. Skoro w bazie masz swedish to zrób eksport bazy w swedish i przekonwertuj plik do utf-8. Szybka piłka. Nieraz już tak zrobiłem. Chyba że nie masz możliwości zmiany kodowania bazy, to wtedy co innego.
Konop857
Gdy dam w plikach utf-8 to dane które wpiszę ręcznie do plików brzydko się wyświetlają (kwadraty zamiast polskich znaków).
Wie ktoś jak to naprawić =/?

Proszę o pomoc
Pozdrawiam

@edit
Dobra, zrobiłem tak jak radził kolega wyżej.
Ustawiłem te UTF-8, zmieniłem kodowanie plików (było w ANSI), zmieniłem kodowanie bazy danych na utf8_unicode_ci i dałem setnames utf8 na początku pliku i działa.
Wcześniej nie działało bo pliki były w ANSI.

Pozdrawiam
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.