![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 15:23 |