Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax][jquery] - kodowanie znaków
elektrrrus
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

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


Witam
Problem przedstawia się następująco:
mam za zadanie zrobić(przerobić) istniejący system komentarzy w joomli(remository, modowane przez paru 'pseudoinformtyków').
Niby nic prostrzego.
Problemem nie do przeskoczenia stało się kodowanie polskich znaków.
Cały serwis jest w iso-8895-2, kodowanie bazy danych latin1_swedish_ci.
Chwilowo zrobiłem tak, że jest na serwerze plik comments.php, który odbiera wywołanie POST od jquery, w którym są dane z formularza, przerabia je, jesli stwierdzi nieprawidłości zwraca komunikat wraz z formularzem i wstawia go w div-a w którym on sie znajduje, jeśli wszytsko ok, to wysyła komunikat że dane zostały zapisane.
Problem w tym, że wysyłane dane do serwera w rządaniu POST mają pokrzaczne polskie znaki.
Robie to tak:
CODE
function parseForm(form){
var imie = form.imie.value;
var mail = form.email.value;
var www = form.userURL.value;
var cphacode = form.cpha.value;
var comment = form.comment.value;
var sess = form.session.value;
var idf = form.id.value;
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=iso-8859-2",
});
$.post('ajax/comments.php', {name:imie, email:mail,url:www,cpha:cphacode,content:comment,session:sess,id:idf}, function(data){
var div = $('#comForm');
div.empty();
div.html(data);
});
return false;
}


Wcześniej próbowałem bez $.ajaxSetup i w tym ustawienia charsetu, ale efekt jest ten sam. Kod php dostaje krzaki zamiast polskich znaków, i nic już z tym nie można zrobić. Próbowałem to co dostaje w bazie danych skopiowac do edytora tekstu i popatrzeć jakie to może miec kodowanie, ale przy żadnym nie ma prawdłowych polskich znaków.

Czy jest jakaś możliwość wyjścia z tego oprócz przerobienia całości na utf-8 ?
Go to the top of the page
+Quote Post
kilofmar
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.11.2006

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


W PHP jest taka funkcja która zamienia kodowane znaki

  1. <?php
  2. $opis=iconv('iso-8859-2','utf-8',$opis);// zamiana kodowania
  3. ?>
Go to the top of the page
+Quote Post
elektrrrus
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

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


Dzięki za odpowiedź, ale to nie to.
Próbowałem tego już na samym początku.
Problem polegał na tym, że dane wpisywane w iso w formularzu byłu już "na dzień dobry" przy wysyłaniu ajaxem kaleczone na utf i zmiana kodowania po stronie serwera nie pomagała.
Poradziłem sobie wysyłaniem danych zapytaniem GET i potem użyciem funkcji charset_utf8_fix() z tego tematu.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 23:04