ďťż

[JavaScript] escape(), a później odczyt w PHP Problem z polskimi znakami

       

Podstrony


telcocafe

Znalazłem jeden pokrewny temat (link), ale nie została tam udzielona odpowiedź.
Problem:
Wykorzystując metodę POST w Ajaksie, wartości danych muszą przejść przez funkcję escape(). Odczytując te dane, w których są na przykład polskie znaki, wszystko się sypie. Żadną funkcją nie mogę tego poczęstować, by wszystko było dobrze. Nie wiem jak się za to zabrać.



To może przy wyświetlaniu używaj unescape() ?
Też miałem ten problem przy bibliotece sajax, co się okazało, że zapomnieli o tej funkcji przy odczycie danych :-)
A w php to może html_entity_decode?

A możesz mi powiedzieć po co traktować dane funkcją escape? Ja wysyłałem wszystko odrazu w poście i zawsze było ok. A jeśli chodzi o entery (jak w temacie wcześniej) to przecież one zostają normalnei wysyłane jako \n wiec o co chodzi?


A możesz mi powiedzieć po co traktować dane funkcją escape? Ja wysyłałem wszystko odrazu w poście i zawsze było ok. A jeśli chodzi o entery (jak w temacie wcześniej) to przecież one zostają normalnei wysyłane jako \n wiec o co chodzi?
Odpowiedź jest prosta. Wiesz co co jest ampersand? Gdy ktoś go wpisze, wszystko leci.
@Einzeinbleth:
Chyba nie da rady z unescape. Dlaczego? Mam tabelkę, w której są pozycje menu. Aby przyspieszyć sobie robotę, wrzuciłem to w Ajaksa. Za dużo roboty, więc unescape nie. Co do drugiej funkcji, zaraz sprawdzę :-)
// Edytowano
Niestety nic nie działa. Przykład dla litery ł po wywołaniu funkcji escape(): % u0142
Użytkownik andrzej_aa edytował ten post 26 styczeń 2008, 15:14


No tak, ale chyba masz jakąś ajaksową funkcję która zwraca tekst, tekst który wrzucasz prosto w tabelkę czy gdzieś tam. Nie możesz tak zrobić by ta funkcja zwracała unescape(tekst) ? Bez kodu to tylko zgadywanie ...

Kodu nie wrzucę, bo to za dużo klepania. Może wyjaśnie dokładniej.
W bazie mam przykładowo: id, nazwa, link. W tabelce jest taki sam układ w kolumnach. Powiedzmy, że w komórkach mam pola tekstowe input. Po zmianie treści i wciśnięciu entera uruchamia się Ajax. Treść pola tekstowego jest wysyłana do bazy, zapisywana i siedzi tam sobie. Z lewej strony na przykład mam menu, w którym są wyświetlane pozycje z bazy. Oczywiście już bez polskich znaczków, bo po edycji zniknęły.
Ja jestem wyczulony na punkcie szybkości i takie rozwiązanie nie będzie mnie satysfakcjonowało. Zwłaszcza że ktoś może nie mieć włączonej obsługi Javascript.
// Edytowano
Chyba znalazłem rozwiązanie. encodeURI zamiast escape. Jeszcze nie testowałem, bo brat teraz gra na komputerze.
// Edytowano
Działa wyśmienicie :-)
Użytkownik andrzej_aa edytował ten post 26 styczeń 2008, 18:02
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.