Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> polskie znaki z php poprzez ajax do html
kossa
post 5.03.2007, 01:59:04
Post #1





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Witam,
napisałem formularz z którego dane poprzez advAjax przesyłam do pliku php w którym analizuję przesłane informacje. W przypadku błędów generuję odpowiednie komunikaty, które na końcu zwracam jako jeden ciąg. W zależności od ilości błędów komunikat jest dłuższy lub krótszy. W zdaniach znajdują się polskie znaki. Wykorzystując innerHTML osadzam wygenerowany komunikat z div'ie, niestety polskie znaki zamieniają się na "krzaczki".

W jaki sposób mogę się uporać z tym problemem?

Próbowałem zapisywać dane do sesji ale jeśli jest błąd to strona z formularzem nie przeładowuje się więc dane z sesji nie wyświetlą się, chyba że można jakoś przeładować jednego div'a aby wyświetlić komunikat.

Proszę o jakieś sugestie, porady jak uporać się z tym problemem.

Pozdrawiam,
Łukasz


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
gebp
post 7.03.2007, 19:56:45
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

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


A zapytam jakiego kodowania używasz ?
Z tego co wiem dane post AJAX wysyła tylko w kodowaniu UTF-8. Więc jeżeli masz ISO to zostaje konwersja z UTF do ISO.
Go to the top of the page
+Quote Post
E -dd
post 7.03.2007, 20:30:40
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 18.12.2006
Skąd: Warszawa

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


Też miałem problemy z kodowaniem (ale w czystym ajaxie) i używam takiej funkcji do zamiany krzaczków.

  1. <?php
  2. function convert($string, $type = ISO88592_TO_UTF8) {
  3. $win2utf = array(
  4. "xb9" => "xc4x85", "xa5" => "xc4x84",
  5. "xe6" => "xc4x87", "xc6" => "xc4x86",
  6. "xea" => "xc4x99", "xca" => "xc4x98",
  7. "xb3" => "xc5x82", "xa3" => "xc5x81",
  8. "xf3" => "xc3xb3", "xd3" => "xc3x93",
  9. "x9c" => "xc5x9b", "x8c" => "xc5x9a",
  10. "xbf" => "xc5xbc", "x8f" => "xc5xbb",
  11. "x9f" => "xc5xba", "xaf" => "xc5xb9",
  12. "xf1" => "xc5x84", "xd1" => "xc5x83"
  13. );
  14. $iso2utf = array(
  15. "xb1" => "xc4x85", "xa1" => "xc4x84",
  16. "xe6" => "xc4x87", "xc6" => "xc4x86",
  17. "xea" => "xc4x99", "xca" => "xc4x98",
  18. "xb3" => "xc5x82", "xa3" => "xc5x81",
  19. "xf3" => "xc3xb3", "xd3" => "xc3x93",
  20. "xb6" => "xc5x9b", "xa6" => "xc5x9a",
  21. "xbc" => "xc5xba", "xac" => "xc5xb9",
  22. "xbf" => "xc5xbc", "xaf" => "xc5xbb",
  23. "xf1" => "xc5x84", "xd1" => "xc5x83"
  24. );
  25.  
  26. if ($type == ISO88592_TO_UTF8)
  27. return strtr($string, $iso2utf);
  28. if ($type == UTF8_TO_ISO88592)
  29. return strtr($string, array_flip($iso2utf));
  30. if ($type == WIN1250_TO_UTF8)
  31. return strtr($string, $win2utf);
  32. if ($type == UTF8_TO_WIN1250)
  33. return strtr($string, array_flip($win2utf));
  34. if ($type == ISO88592_TO_WIN1250)
  35. return strtr($string, "xa1xa6xacxb1xb6xbc",
  36. "xa5x8cx8fxb9x9cx9f");
  37. if ($type == WIN1250_TO_ISO88592)
  38. return strtr($string, "xa5x8cx8fxb9x9cx9f",
  39. "xa1xa6xacxb1xb6xbc");
  40. }
  41. ?>


--------------------
Program TV, Sukces internetowy, Forum dla administratorów stron
Go to the top of the page
+Quote Post
kossa
post 8.03.2007, 10:31:13
Post #4





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Tak, miałem iso we wszystkich plikach.

Dzięki za funkcję convert(), popróbuję smile.gif

Pozdrawiam,
Łukasz


--------------------
Go to the top of the page
+Quote Post
misioo
post 27.03.2007, 07:45:00
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 2.10.2003
Skąd: Głogów/Tarnów

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


witam

też ostatnio z tym walczyłem i doszedłem do takiego czegoś, jak:
  1. ObiektXMLHttp.open("GET", zrodlo);
  2. ObiektXMLHttp.overrideMimeType('text/html; charset=ISO-8859-2');


oczywiście obie strony są w

  1. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />


i u mnie działa

Pozdrawiam
Michał
Go to the top of the page
+Quote Post
morrison
post 27.03.2007, 13:39:36
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 24.05.2004
Skąd: krakow

Ostrzeżenie: (10%)
X----


u mnie dziala pod firefoxem, ale nie dziala pod IE, mam taki komunikat: obiekt nie obsluguje tej wlasciwosci lub metody.
co mozna zrobic? uzywam kodowania 1250


--------------------
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: 24.07.2025 - 14:28