Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> HtmlHttpRequest Kodowanie Part 2, część dalsza , ale z innym skryptem.
g00fy
post 1.06.2006, 20:10:14
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.11.2004

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


Znalazłem coś takiego :http://www.twinhelix.com/javascript/htmlhttprequest/
uzywam tego do ladowania podstrony w divie.
niestety gdy wysylam formularz (post) kodowanie z polskimi literkami wali sie i wychodza dziwne ślaczki.
probowalem juz iconv etc , ujednolicania content-type i nic.

any other ideas?

jakby ktos chcial zobaczyc o co chodzi to http://fz.g00fy.nq.pl
Go to the top of the page
+Quote Post
anopak
post 1.06.2006, 20:50:30
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

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


hmm u mnie działa poprawnie...

co do tego jak to powinno być to poprostu w php w header należy dać odpowiedni charset np. iso-8859-2, było o tym na forum sporo razy smile.gif


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
g00fy
post 4.06.2006, 21:45:50
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.11.2004

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


ale pisze dlatego ze to nie dziala winksmiley.jpg
(header) - nic nei daje

ktos mowil o zmienieniu kodowania w bazie danych ;/
tylko ze gdy dodaje newsy z panelu (bez ajaxa) wszystko dziala poprawnie;/
Go to the top of the page
+Quote Post
anopak
post 5.06.2006, 07:05:28
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

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


jeżeli dodajesz do bazy to musisz tekst otrzymany z ajaxa przekonwertować na iso-8859-2, możesz do tego wykorzystać iconv bądź mb_convert_variables


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
g00fy
post 5.06.2006, 16:04:11
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.11.2004

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


niestety te funkcje zwracają mi błąd.
jakiś pomysł ;>?
Go to the top of the page
+Quote Post
anopak
post 5.06.2006, 18:32:40
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

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


brak zainstalowanych tych funkcji w PHPie... na upartego można to zrobić za pomocą chr() i str_replace(), ale to jest troche mijanie się z celem - lecz w takim wypadku chyba jedyny sposób....


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
g00fy
post 5.06.2006, 20:02:12
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.11.2004

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


tzn iconv jest zainstalowane ale i tak zwraca blad ;/ dunno why...
a gdy dodaje posty z strony nie zawierajacej htmlhttprequest to wsio dziala poprawnie;/

znalazlem taka funkcje

  1. <?
  2. function unescape($str) {
  3. $str = rawurldecode($str);
  4. preg_match_all("/(?:%u.{4})|&#x.{4};|&#d+;|.+/U",$str,$r);
  5. $ar = $r[0];
  6. foreach($ar as $k=>$v) {
  7.  if(substr($v,0,2) == "%u")
  8.  $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,-4)));
  9.  elseif(substr($v,0,3) == "&#x")
  10.  $ar[$k] = iconv("UCS-2","UTF-8",pack("H4",substr($v,3,-1)));
  11.  elseif(substr($v,0,2) == "&#") {
  12.  $ar[$k] = iconv("UCS-2","UTF-8",pack("n",substr($v,2,-1)));
  13.  }
  14. }
  15. return join("",$ar);
  16. }
  17.  
  18. ?>

ale nie zamienia ona wszystkich znakow jedynie czesc...


ok juz wiem o co chodzi
smile.gif

trzeba dodac przed ta funkcja jeszcze jedno iconv i bedzie dzialac

oto przyklad smile.gif :


  1. <?
  2.  
  3. echo unescape(iconv('',"UTF-8",$num1));
  4.  
  5. ?>


Ten post edytował g00fy 5.06.2006, 20:20:48
Go to the top of the page
+Quote Post
g00fy
post 6.06.2006, 18:45:51
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.11.2004

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


w końcu znalazłem winowajcę winksmiley.jpg
to js w którym stringi wysylane są w formacie unicode

zamiast funkcji escape powinno użyć się encodeURIComponent() dzięki któremu wszystko będzie normalne i nie potrzeba będzie dodatkowych zmian w php tongue.gif

to jakby ktos potrzebowal na przyslosc tongue.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 11:17