Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Kodowanie w plikach PHP, dziwny przypadek :(
unnamedly
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 5.05.2012

Ostrzeżenie: (0%)
-----


Witam, sprawa wygląda tak:
Mam 3 pliki:
- pierwszy, to jest wyświetlanie komentarzy na stronie,
- drugi dodawanie komentarzy do bazy,
- trzeci odświeżanie komentarzy (SELECT do bazy).

Wszystko opiera się o jQuery (dodawanie komentarzy bez przeładowania strony).

We wszystkich plikach, mam kodowanie: iso-8859-2, w bazie mam wszędzie kodowania: latin2_general_ci.

Problem jest taki, że w pierwszym pliku, polskie znaki są prawidłowo wyświetlane,
w drugim pliku widać, że w bazie, polskie znaki nie są wyświetlane prawidłowo (przykładowe polskie znaki: ńśććżąśźćśżąć),
a o dziwo, po dodaniu rekordu i zaktualizowaniu komentarzy bez przeładowania (load() w jQuery) komentarz, który został dodany bez przeładowania i wszystkie inne komentarze, uzyskują polskie znaki (magia (IMG:style_emoticons/default/biggrin.gif) ).

Dlaczego mimo złych znaków w bazie, komentarze odświeżają się z polskimi znakami? Jak zrobić, aby polskie znaki zapisywały, lub chociaż odczytywały się z bazy?



P.S.: Wyjaśnię wszystko jeszcze raz screenami:
#1: Dodawanie komentarza: http://screenshoot.me/4vbplC ;
#2: Pozostałe komentarze przed dodaniem: http://screenshoot.me/yzuo0R ;
#3: "Magiczne" zamienienie na polskie znaki po dodaniu komentarza bez przeładowania (od 1 punktu, wszystko dzieje się bez przeładowania): http://screenshoot.me/3nj2s5 ;
#4: No i odświeżenie strony: http://screenshoot.me/7UvsHC .


Ten post edytował unnamedly 23.10.2012, 18:07:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


iso-8859-2 to dziś coraz rzadziej używany standard kodowania, dlatego...
W bazie zastosuj utf8_general_ci, a na stronie w <meta ...> wpisz charset=utf-8.
Dodatkowo przypominam, że polskie znaki wprowadzane np. z poziomu phpmyadmin-a nie zostaną zakodowane jak trzeba, więc przy ich wyświetleniu pojawią się krzaki pomimo poprawnego zapisu w bazie.
Poprawna forma dodawania stringów z polskimi znakami do bazy to przez odpowiedni formularz, który posiada to samo kodowanie co baza danych - w ten sposób w bazie pojawią się krzaki, natomiast przy ich wyświetlaniu wszystko będzie bezbłędnie.
Mam nadzieję, że trafiłem w problem.

Ten post edytował modern-web 23.10.2012, 18:18:51
Go to the top of the page
+Quote Post
unnamedly
post
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 5.05.2012

Ostrzeżenie: (0%)
-----


Witam, dziękuję za odpowiedź, jednakże po dodaniu rekordu z polskimi znakami bezpośrednio z phpMyAdmin-a, znaki są prawidłowo dodane i prawidłowo są odczytywane (IMG:style_emoticons/default/smile.gif)

Jednak po odświeżeniu bez przeładowania (dodania nowego commenta), znowu dzieje się magia : http://screenshoot.me/XfXrks (IMG:style_emoticons/default/biggrin.gif) Komentarz widoczny niżej, to ten, który był prawidłowo zakodowany w bazie i który był poprawnie odczytywany, jednak tu jest sytuacja odwrotna, do opisanej w pierwszym poście. Już nic z tego nie rozumiem :/


Kiedy zastosowuję UTF-8 w charset`cie, w bazie i kodowaniu pliku, to już zupełnie polskie znaki zamieniają się na znaki zapytania, a z iso-8859-2 nie ma problemu w innych plikach, więc jakby się dało coś wykombinować z iso, to byłbym wdzięczny (IMG:style_emoticons/default/sad.gif)

Ten post edytował unnamedly 23.10.2012, 18:33:41
Go to the top of the page
+Quote Post
szalek01
post
Post #4





Grupa: Zarejestrowani
Postów: 129
Pomógł: 17
Dołączył: 17.09.2012

Ostrzeżenie: (0%)
-----


Nie prześlesz polskich znaków ajaxem bez użycia utf-8.
Dodaj odpowiednie nagłówki tak jak mówi modern-web i przekonwertuj pliki jeśli są w innym kodowaniu na utf-8.
Go to the top of the page
+Quote Post
unnamedly
post
Post #5





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 5.05.2012

Ostrzeżenie: (0%)
-----


Dzięki wielkie! To działa! Zmieniłem wszystkie możliwe kodowania i wszędzie na UTF-8 i wszystko ok (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 15:23