Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyświetlaniem polskich znaków.
Forum PHP.pl > Forum > PHP
szefol7
Nie wyświetla mi polskich znaków zarówno w php (z formularza jeżeli są przeniesione dane na następną stronę wyświetlane już są bez polskich znaków) oraz w MySQL. Po wprowadzeniu danych tam gdzie były wpisane polskie znaki wyświetlają się "dziwne znaczki".
Czy można temu jakoś zaradzić?
Bardzo bym prosił o pomoc w tym temacie.
Z góry dziękuję!!!
sf
Jakie masz ustawione kodowanie na poszczególnych stronach?
szefol7
ISO-8859-2
sf
Hm, dziwne ;] Jeżeli przy formularzu też masz ustawione kodowanie ISO-8859-2 to powinno być ok. Spróbuj w httpd.conf dać :

AddDefaultCharset ISO-8859-2

Ja np. jak miałem ustawione ISO-8859-2 to mi nie chciał Apache wyświetlać UTF-8 :/ Zmieniłem na :

AddDefaultCharset UTF-8

i teraz śmiga ładnie tongue.gif
szefol7
Hmm.
Dodałem AddDefaultCharset ISO-8859-2 do httpd.conf, zrestartowałem server i dalej to samo.
Może jak napisze te kilka rzeczy to Cię naprowadzi co to może być:
Kiedy pisze skrypt w notatniku to nie chce wogóle na stronie wyświetlać polskich znaków (poprostu "echo" nie wyświetla mi polskich znaków), ale spróbowałem edytować tekst w HTMLowcu (edytor html) i już normalnie wyświetliło polskie znaki.
Także jeden problem był by z głowy, notatnik prawdopodobnie koduje strony w innym standardzie.
Ale pozostaje problem z MySQL-em. Przesyłane dane z formularza do MySQL-a nadal są bez polskich znaków. Wprowadzałem dane bezpośrednio do MySQL-a z poziomu DOSa i polskie znaki są wprowadzane bez problemu.
Czy może się ktoś orientuje co to może być?
spenalzo
Może w bazie masz znaki w innym kodowaniu niż iso?
szefol7
A gdzie moge sprawdzić/zmienić kodowanie w bazie? Wszukałem tak wstępnie, ale niestety nie wiem gdzie to moge znaleźć?
Prosił bym o małą podpowiedź.
sf
Z tego co piszesz wynika, że tam gdzie wyświetlasz dane jest kodowanie Windows-1250. Natomiast przy wprowadzaniu używasz ISO-8859-2. Skąd takie przypuszczenie? Jeżeli z poziomu dosa wprowadasz dane to używasz kodowania Windows-1250. Następnie gdy wyświetlasz te dane pobrane z bazy to gdybyś użył kodowania ISO-8859-2 to by Ci wyświetliło krzaki przecież.

Możesz podać ( <meta http-equiv="Content-type" ... > ) ze strony gdzie masz formularz i ze strony gdzie wyświetlasz dane?
phpbybastek
Tu masz tak po hamsku jakbyś sobie już nie radził
Kod
$zmienna = strtr($zmienna, "\xa6\xa1\xaf\xca\xc6\xac\xd3\xa3\xb6\xb1\xbf\xea\xe6\xbc\xf3\xb3", "\x8c\xa5\xaf\xca\xc6\x8f\xd3\xa3\x9c\xb9\xbf\xea\xe6\x9f\xf3\xb3");
szefol7
<meta HTTP-EQUIV="Content-type" CONTENT="text/html; charset ISO-8859-2">

Tak wygląda na stronie z formularzem, i na stronie gdzie wyświetlam wyniki.
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.