Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax][jquery] - kodowanie znaków
Forum PHP.pl > Forum > XML, AJAX > AJAX
elektrrrus
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 ?
kilofmar
W PHP jest taka funkcja która zamienia kodowane znaki

  1. <?php
  2. $opis=iconv('iso-8859-2','utf-8',$opis);// zamiana kodowania
  3. ?>
elektrrrus
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.
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.