![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
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. (IMG:style_emoticons/default/tongue.gif)
======== 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ć. Ten post edytował brc 1.05.2014, 13:58:26 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
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.... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
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...
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
xdebug przyjacielem Twoim jest
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
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ę.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:48 |