Nie oczekuję, że ktoś z Państwa tu obecnych zna dobrze phpbb2 by przemo. Ja mam konkretne pytanie dotyczące samego PHP, choć nie ukrywam, że znajomość tego skryptu może się przydać przy pomocy. Myślę, że tutaj są lepsi znawcy tematu, stąd postanowiłem spróbować. Proszę mnie nie wyzywać, i tak mam już dość życia.

========
Pytanie brzmi: jakie funkcje PHP mogą powodować złą interpretację polskich znaków diakrytycznych
Ł oraz
Ń w UTF-8? Dodam, że nie działają też inne znaki, np. niektóre znaki cyrylicy (ale z polskich: tylko te dwie).Gdy napiszę w poście Ł lub Ń, litera zamienia się na ?.W shoutboxie wszystko działa.
Jeśli macie jakieś inne rady (oprócz: zmień skrypt) albo dodatkowe pytania, słucham uprzejmie.
-----PS chodzi o te wszystkie fnkcje z MB, mb_substr, mb_strlen etc... ale zamieniałem je wszystkie i to nic nie dało. Więc coś musiałem przeoczyć.
by_ikar
1.05.2014, 17:58:33
Odpowiednie kodowanie w bazie danych, odpowiednie kodowanie dla połączenia z bazą danych, odpowiednie kodowanie plików no i funkcje mb_* które piszesz że już zmieniłeś. A czy do tych funkcji dodałeś jako dodatkowy parametr kodowanie? Tzn w przypadku mb_strlen($string, $encoding), czyli jako drugi parametr w przypadku tej funkcji trzeba podać kodowanie, w twoim przypadku utf-8.
Nie trzeba, ustawia się po prostu mb_internal_encoding("UTF-8") - ustawiłem.
Odpowiednie kodowanie jest, wszystko działa, jak wklepię do bazy ręcznie Ł, Ń to czyta dobrze, tylko przy wysyłaniu posting.php coś pieprzy. :/
Szczerze mówiąc zmieniałem te funkcje na odpowiednie z MB ale nie dawało to rezultatu, dlatego po prostu przyszedłem zapytać, bo może jest jakaś specyficzna funkcja, która też powoduje błędy w UTF-8 a się jakoś dziwnie nazywa, nie wyczaiłem jej, nie wiem. Generalnie sprawa jest ciężka, bo wystarczy, że w jednym miejscu coś przeoczę i już jest po grze, prawda? Więc to utrudnia sprawę. Idealnie byłoby, gdybym mógł prześledzić wykonywanie tego, i linijka po linijce sprawdzać, kiedy w $message powstają krzaki. Gdybym na bieżąco mógł wprowadzać zmiany, to może by mi się udało. Jakieś pomysły?
zegarek84
1.05.2014, 20:42:45
samo:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
w html ma małe znaczenie, wyślij jeszcze kodowanie strony w nagłówkach odpowiedzi w PHP lub ustaw automatyczne wysyłanie tego nagłówka w .htaccess, bo z tego co piszesz to masz inne kodowanie na wyświetlanej stronie... możesz to sprawdzić przy pomocy narzędzi developerskich - odpowiednie pluginy do przeglądarek....
Kodowanie jest dobre, przed każdym połączeniem z bazą jest ustawiany utf-8, w przemo jest wymuszanie kodowania. AddDefaultCharset w htaccess nic nie daje.
zegarek84
1.05.2014, 21:08:57
ustaw wyświetlanie wszystkich błędów żeby wiedzieć, czy gdzieś nie masz wysyłany BOM... dodatkowo skorzystaj z jakichś pluginów do przeglądarek żeby upewnić się, czy na pewno po stronie klienta jest poprawne kodowanie (jak jest wysyłany bom to na pewno nie)... lub ustaw jakieś buforowanie wyjścia żeby na pewno wcześniej dotarły nagłówki kodowania...
Pyton_000
1.05.2014, 21:29:37
xdebug przyjacielem Twoim jest
O, o, no! Pewnie tak, własnie coś takiego. Mógłbyś mi napisać skrótowo, w punktach, co mam konkretnie robić, bo nigdy z czymś, co ma w nazwie debug + php nie miałem do czynienia? Z góry dziękuję.
Pyton_000
2.05.2014, 19:15:26
Instaluszesz zgodnie z dokumentacją, potem konfigurujesz sobie swoje środowisko do pracy z tym, stawiasz breakpointa i odpalasz debugowanie. Uruchamianie zatrzyma się na breakpoincie, a potem to już tylko przechodzenie skrótami klawiszowymi do kolejnych linijek.
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.