ďťż

[JS] Brak polskich znaków w AJAX po wysłaniu formularza

       

Podstrony


telcocafe

Oto klasa do obsługi AJAX: http://pastebin.pl/6632
Niestety do serwera trafiają dane bez polskich liter. Nic nie daje dodanie znacznika META z kodowaniem ani overrideMimeType. Po stronie serwera ustawiam nagłówek:Header('Content-type: text/html; charset=iso-8859-2');To jednak raczej nie ma znaczenia, bo dane trafiają do serwera wcześniej. Przykład: ĹťDĹťBÄąďż˝O zamiast ŹDŹBŁO.

Czy pozostaje tylko przesiąść się na UTF-8, aby móc wysyłać dane przez AJAX bez kombinacji?



utf-8 to powszechnie przyjęte kodowanie. Jeżeli używasz "niszowych" kodowań to mogą pojawić się problemy, tam gdzie nie zostały one uwzględnione. Jak się bawiłem ajaxem to header z utf-8 załatwiał sprawę (strona też była utf-8).

Ja także miałem podobny problem i:
1. Najlepiej zmienić kodowanie wszystkiego na UTF-8
2. możesz skorzystać z tych funkcji (przed wysłaniem do ajax'a cały tekst który ma zostać nim wysłany obejmujesz funkcją iso2utf z poniższego kodu:
http://www.piotrek94...org/iso2utf.zip
Użytkownik piotr94 edytował ten post 01 kwiecień 2009, 13:05
Rozważam przejście na UTF-8. Chcę stworzyć rozszerzenie CZAT z użyciem AJAX. Z konwersją plików językowych nie ma kłopotu, za to pojawiają się problemy w bazie danych:

1. Tabele i pola w bazie MOGĄ być zakodowane w latin2_polish_ci, latin2_general_ci lub latin2_swedish_ci (?).
2. Jak przekonwertować zawartość do utf8_polish_ci? Czy MySQL zrobi to automatycznie, gdy zmienię kodowanie?
3. Nie chcę stosować SET NAMES, SET CHARSET itd. przy każdym połączeniu.



najlepiej używać funkcji, takich jak załączona powyżej moja, i wtedy nieważne jakie kodowanie bazy danych, jakie strony itd, zawsze będzie działać ;-)


Rozważam przejście na UTF-8. Chcę stworzyć rozszerzenie CZAT z użyciem AJAX. Z konwersją plików językowych nie ma kłopotu, za to pojawiają się problemy w bazie danych:

1. Tabele i pola w bazie MOGĄ być zakodowane w latin2_polish_ci, latin2_general_ci lub latin2_swedish_ci (?).
2. Jak przekonwertować zawartość do utf8_polish_ci? Czy MySQL zrobi to automatycznie, gdy zmienię kodowanie?
3. Nie chcę stosować SET NAMES, SET CHARSET itd. przy każdym połączeniu.

1. Stosuj utf8 i spokój.

Tak, zamierzam przejść na UTF-8, ale...

Jak bezpiecznie skonwertować zawartość w bazie danych z latin2 do utf8? Czy MySQL zrobi to automatycznie, gdy zmienię stronę kodową za pomocą ALTER TABLE?

piotr94, to nie ma sensu. Jeśli nie da się zmusić AJAX-a, aby wysyłał dane na serwer w ISO-8859-2, lepiej przejść na UTF-8.
Użytkownik Ferrari edytował ten post 04 kwiecień 2009, 22:18
możesz zrobić dumpa danych, przerobić tabele i jeżeli dane nie zostaną poprawnie przekodowane - wyczyścić tabele i przywrócić dumpa z latinowym SET NAMES itd. na początku -- AFAIK wtedy powinno przejść dobrze.


3. Nie chcę stosować SET NAMES, SET CHARSET itd. przy każdym połączeniu.
Dlaczego nie?


Jak bezpiecznie skonwertować zawartość w bazie danych z latin2 do utf8? Czy MySQL zrobi to automatycznie, gdy zmienię stronę kodową za pomocą ALTER TABLE?
Nie możesz sprawdzić sam? Skopiować istniejącą lub zrobić nową tabelę z kilkoma kolumnami, każdą z innym kodowaniem, dodać kilka słów z polskimi znakami i po prostu... zmienić kodowanie?
Użytkownik Kozack edytował ten post 05 kwiecień 2009, 14:55
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.