PDA

Pogčedajte punu verziju : Problem sa našim slovima ?


Ministar
20. 10. 2006., 14:13
Imam problema sa nasim slovima, po jednom tutorijalu sam napravio live search, znaci ajax je na snazi, ia stranici imam charset=iso-8859-2 , pretraga cupa rezultate iz baze, i u fajlu koji mi daje rezultat je isti charset.

medjutim kada dobijam rezultate pretrage ž i š su mi zamjenjeni upitnikom, a č u c itd.. ucitava se vanjski .js jel ima kakav dio koda da se stavi u java script koji ce odrediti charset.

I jos kako koristiti dva charseta na istoj stranici

jablan
20. 10. 2006., 14:40
Pogledaj nekim HTTP trejserom AJAX request i response... Bojim se da AJAX po defaultu radi UTF-8 a kao kroz maglu se sećam da ima problema kad hoćeš da mu forsiraš neki drugi.
Dakle možda ćeš morati da ili promeniš CP stranice na UTF ili radiš JavaScript konverziju. Ali sačekaj još koji odgovor...

srdjevic
20. 10. 2006., 17:14
Enkodiraj rezultat na PHP strani (base64 will do), i dekodiraj ga na JS strani. Imao sam taj problem ranije sa nekim kineskim setovima.

ivanhoe
20. 10. 2006., 18:46
ako je problem u textu koji salje server, pokusaj da dodas:
header("Content-Type: text/html;charset=iso-8859-2");
na samom pocetku skripte (pre slanja bilo kakvog outputa)..

Ako je problem u karakterima koje browser salje ajaxom, onda treba uraditi escape() u js-u, pa onda u php-u vratiti to nazad pomocu funkcije koju mozes da nadjes ovde: http://www.kanolife.com/escape/2006/03/unicode-url-escapes-in-php.html

moze naravno i base64 da se koristi, ali onda se sadrzaj poveca za oko 30%, inace je ok..

Milos Vukotic
21. 10. 2006., 00:15
I ja sam "onaj novi" sto se Ajax-a tice, ali u JS bi, by the book, trebalo da funkcionise ovako (ako ti se http objekat zove npr. "http" :)):
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded ;Charset=iso-8859-2");

HTH :)

Ministar
21. 10. 2006., 15:13
Nista ne kontam kako da to implementiram sa ovim, zaboravio sam reci da radim sa prototype-om




new Form.Element.Observer('strRijec', 1,
function(element, value) {new Ajax.Updater(
'rezultati',
'rezultat.php',
{asynchronous:true, evalScripts:true,
method:'post', parameters:'q=' + value
})})
<div id="rezultati"></div>


i naravno kada pokrenem posebno rezultat.php imaju sva slova ali kada ga ucitam sa ajax updejterom nema ih.