Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MYSQL] Kodowanie w [CMS] Webspell
Forum PHP.pl > Forum > Przedszkole
Xajan3981
Witam.
Ostatnio robie pewna stronke w Webspellu i pojawil mi sie dosc nietypowy problem z kodowaniem znakow.

Otoz jezeli napisze newsa, komentarz czy jakiegos posta w systemie Webspell, polskie znaki sa wyswietlane w takiej formie:
ę, ó, ą, ś, ł, ż, ź, ć, ń.

Z pozoru wydaje sie ze jest wszystko okej ale w bazie danych te znaki sa zapisywane w takiej formie:
ê, ó, ±, ¶, ³, ¿, ¼, æ, ñ


I w przypadku kiedy wejdzie sie na edycje postu (newsa, artykulu itp) to wowczas wczytywane sa z bazy te znaczki i jezeli da sie zapisz, znowu sa w niej zapisywane, jako kod HTML tych znakow:
&#234, ó, &#177, &#182, &#179, &#191, &#188, &#230, &#241

(choc wyświetlane juz beda tak jak powyzej)


kodowanie mam ustawione na iso-8859-2
kodowanie mysql na utf8-polish-ci

Moje pytanie sie tyczy tego czy jest to wina php i zapisu danych do BD, czy moze wina lezy po stronie kodowanie BD. Zaznacze jednak ze uzywam na tej samej BD forum SMF i dziala bez problemu. Dlatego zwracam sie z prosba do was.

Szukalem w google o kodowaniu w Webspellu badz czy ktos ma podobny problem. I nic nieznalazlem odnosnie Webspella zas znalazlem ze nie tylko ja mam z tym problem.

Jezeli beda potrzebne jakies pliki przykladowe badz inne informacje na temat tego CMS'a by pomoc mi w rozwiazaniu tego problemu prosze pisac.
Kulbak
Nie wiem czy to pomoże - ale miałem podobny problem i właśnie przed chwilą go rozwiązałem =)

Używałem formularza do zapisu danych w bazie. Stronę kodowałem w UTF-8. Bazę danych skonfigurowałem na utf8_polish_ci lub utf8_bin (dla różnych kolumn tabeli, dla testów). W obu przypadkach po wpisanu danych do formularza nie wyświetlały się one jako polskie litery, ale jako kod html (dla utf_polish_ci z wyjątkiem ó które pozostawało bez zmian, wyświetlane w oryginale) lub jakiś dziwny nawias kwadratowy (dla utf8_bin). Po odczytaniu danych z bazy i wyświetleniu ich na stronie internetowej wszystkie litery były wyświetlane jednak w obydwu przypadkach prawidłowo - nie dotyczyło to jednak wspomnianej litery ó. Zamiast niej pojawiał się znak zapytania, pomimo tego, że strona wyświetlania również była w standardzie utf-8.

Roziązanie: do formularza dodałem linijkę <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - MySQL zaczął zapisywać inne symbole, a dane pobierane z bazy wyświetlane tym samym sposobem były już prawidłowe. Jest to więc problem z danymi wysyłanymi do bazy, nie z bazą.

Mam nadzieję że pomogłem =)

HOWK!
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.