Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js] kodowanie znaków ajax?
Forum PHP.pl > Forum > Przedszkole
Kamson
Witam,

piszę z pewnym problemem , sam do końca nie wiem jakim. Chodzi o polskie znaki podczas wysyłania ajaxowego posta do serwera.
Dajmy na to wysyłam literkę ' ł ' a jak skrypcie odbierającym widzę ' %u0142 ' i tak prawie każdy polski znak, no i ok sprawę załatwiłem przez
strtr i tablice w stylu "%u0142" => "ł". Napisałem prawie bo z literką ' ó Ó ' jest inaczej , skrypt widzi ją jako jakiś dziwny znaki który przeglądarka po prostu reprezentuje znakiem ' ? ' i nie mogę tego zmienić sadsmiley02.gif Cały czas myślałem że to może biblioteka wysyłająca żądanie ( jQuery ) koduje znaki unicode .. al... np firebug pokazuje w nagłówkach POST że niby polskie znaki są ok wysyłane, bez żadnych zmian na hexy czy coś w tym stylu. Ma ktoś jakieś pomysły? może serwer źle odbiera te nagłówki? tylko nie wiem gdzie szukać wstydnis.gif


pozdrawiam i dziękuje za wszelką pomoc
Greg00pl
Zrobię nieładnie i podepnę się - możesz wkleić tą część skryptu który robi ci translację z %uFFFF na literki, bo przydałoby mi się takiej użyć.

Pozdrawiam
bugme
Cytat
sprawę załatwiłem przez strtr i tablice w stylu "%u0142" => "ł"

A nie wystarczy do tego celu urldecode albo rawurldecode? wstydnis.gif

  1. <?php
  2. function unescape($str)
  3. {
  4. array('/%([0-9a-fA-F]{2})/', '/%u([0-9a-fA-F]{4})/'),
  5. '&#x${1};',
  6. $str
  7. ),
  8. ENT_QUOTES,
  9. 'UTF-8'
  10. );
  11. }
  12. ?>


albo

  1. <?php
  2. function unescape($str)
  3. {
  4. '/%([0-9a-fA-F]{2})|%u([0-9a-fA-F]{4})/',
  5. create_function(
  6. '$match',
  7. '$m = $match[1] . (isset($match[2])? $match[2]:"");' . 
  8. 'return html_entity_decode("&#x$m;", ENT_QUOTES, "UTF-8");'
  9. ),
  10. $str
  11. );
  12. }
  13. ?>
Greg00pl
Cytat(bugme @ 24.09.2007, 19:53:39 ) *
A nie wystarczy do tego celu urldecode albo rawurldecode?


ok ale w AJAX SB dla pgpBB by Przemo to nawet nie wim gdzie go XXX hmmm....
thee-ETH
  1. <?php
  2. function utf2iso($tekst)
  3. {
  4. $nowytekst = str_replace("%u0104","xA1",$tekst); //Ą
  5. $nowytekst = str_replace("%u0106","xC6",$nowytekst); //Ć
  6. $nowytekst = str_replace("%u0118","xCA",$nowytekst); //Ę
  7. $nowytekst = str_replace("%u0141","xA3",$nowytekst); //Ł
  8. $nowytekst = str_replace("%u0143","xD1",$nowytekst); //Ń
  9. $nowytekst = str_replace("%u00D3","xD3",$nowytekst); //Ó
  10. $nowytekst = str_replace("%u015A","xA6",$nowytekst); //Ś
  11. $nowytekst = str_replace("%u0179","xAC",$nowytekst); //Ź
  12. $nowytekst = str_replace("%u017B","xAF",$nowytekst); //Ż
  13.  
  14. $nowytekst = str_replace("%u0105","xB1",$nowytekst); //ą
  15. $nowytekst = str_replace("%u0107","xE6",$nowytekst); //ć
  16. $nowytekst = str_replace("%u0119","xEA",$nowytekst); //ę
  17. $nowytekst = str_replace("%u0142","xB3",$nowytekst); //ł
  18. $nowytekst = str_replace("%u0144","xF1",$nowytekst); //ń
  19. $nowytekst = str_replace("%u00D4","xF3",$nowytekst); //ó
  20. $nowytekst = str_replace("%u015B","xB6",$nowytekst); //ś
  21. $nowytekst = str_replace("%u017A","xBC",$nowytekst); //ź
  22. $nowytekst = str_replace("%u017C","xBF",$nowytekst); //ż
  23.  
  24. return ($nowytekst);
  25. }
  26. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.