![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
Witam
Potrzebuję pomocy w odkodowywaniu polskich znaków w PHP, które pobrane są z bazy danych. Wszystko jest zakodowane w UTF-8, także atrubuty do zapytania MySQL są zakodowane w UTF-8. Problem jest taki. polskie znaki są przechowywane w bazie normalnie, na stronie również są odczytywane, lecz dopiero po odświerzeniu. W czym tkwi problem? Zauważyłem także, że jeśli zapiszę polskie znaki w postaci encji w bazie danych, to problem nie występuje. Czy powinienem zamieniać wszystkie znaki na encje czy jest jakiś lepszy sposób na rozwiązanie tego problemu? Pozdrawiam Ten post edytował castagir 24.12.2014, 11:14:26 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Nagłówek w HTML zdefiniowany?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
Tak.
Na stronie wszystko ładnie wyświetla, tylko, że dopiero po odświeżeniu. Dodam, że dane są pobierane z MySQL i żeby dobrze były pobrane trzeba odświeżyć. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż w jaki sposób ustawiasz nagłówki.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
Nie wiem o co dokładnie Tobie chodzi, więc pokaze wszystko co zawiera kodowanie:
Te dwa pliki dołączam na samym poczatku każdego pliku:
Tutaj jest fragment "procedury.php": połączenie z baża, które jest podstawową konstrukcją na, której opierają się wszystkie zapytania w mojej aplikacji:
Wstawiam zawsze odniesienie do treści wykonawczej HTML na samym końcu dokumentu:
To jest treść nagłówka:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Według tego powinno być dobrze. Wywal jeszcze or die() bo przechwytujesz wyjątek. Te dane są jakimś ajaxem pobierane? Masz gdzieś na żywo?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
A czy format pliku masz w UTF8? Ustawia się to bezpośrednio w edytorze tekstowym
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
Ajaxa na razie nie wprowadzełem, bo jeszcze go nie poznałem. Chyba, że tak skonstrułowałem skrypt, że przybiera forme Ajaxa, ale wątpię w to.
Format pliku jak najbardziej w UTF-8. W internecie czytałem, żeby zmienić format na bez BOM, więc napewt przestawiałęm na UTF-16 i 32, ale wtedy to już w ogóle do niczego strona. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj usunąć slash w meta charset.
A jeśli nie to w .htaccess: AddDefaultCharset UTF-8 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
usunięcie ukośnika z meta też nic nie daje.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
header i tak zawsze jest najważniejszy. Spróbuj jeszcze linijkę
wstawić jako pierwszą w index.php przed czymkolwiek innym. Ale moim zdaniem o coś innego w kodzie chodzi. Może być też błąd twojej przeglądarki, zobacz czy w innej jest tak samo. Odpal też firebug i zobacz jakie nagłówki są wysyłane. Może masz gdzieś namieszane i lecą podwójne albo inne błędy. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 24 Dołączył: 22.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Może prozaiczne rzeczy typu cache przeglądarki? Patrzyłeś w różnych, a także po zupełnym wyczyszczeniu cache?
Pamiętam, że kiedyś też miałem coś takiego, ale już nie pamiętam, jak to naprawiłem... I to była jakaś totalna głupota. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) ![]() ![]() |
Sprawdzę czy ten problem występuje tylko u mnie czy również na hostingu. Jak będzie to samo występowało to poproszę o zmianę konfiguracji, a jak nie to napisze edytor, który będzie zmieniać znaki na encje.
Natomiast jeśli na hostingu będzie wszystko w porządku to mi nie będzie przeszkadzać. @viking, tak. takie coś też próbowałem. Wstawiałem to na samym początku tuż po <?php i nic. To pewnie coś głębiej trzeba szperać, pewnie tak jak radzicie w apache Ten post edytował castagir 25.12.2014, 11:12:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 19:31 |