Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prokleti encoding

[es] :: Javascript i AJAX :: Prokleti encoding

[ Pregleda: 2229 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Prokleti encoding19.05.2008. u 22:14 - pre 155 meseci
Ovo mi je upropastilo dan...

Na sajtu su mi sve stranice windows-1250
Upis u bazu je utf-8

Super je sve radilo i sa latinicom i sa ćirilicom prilikom upisa u bazu putem čistog PHP-a, a onda sam odlučio da za neke stvari koristim AJAX.

Skripta prenosi na snimi.php stranu podatke preko POST-a i tamo gde se definišu header-i u skripti sam stavio

obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=windows-1250");
i probao i
obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");

i hiljadu kombinacija sam probao nijedna nije pokazivala dobre rezultate... jedino što mi je uspelo jeste da na stranu koja mi prikazuje rezultate stavim utf-8, ali zato svi raniji podaci se poremete.

A, da čak sam i proba da koristim iconv(), i uspešno prevede latinično pismo, ali kada dodam ćirilicu neće ni da snimi podatak u bazu...

Sve u svemu želeo bih da umesto ovoga:

Šumar �ura traži piće.

Ш�мар Ђ�ра тражи пиће.


vidim ovo:

Šumar Đura traži piće.

Šumar Đura traži piće.
(ćirilicom)

Hvala na pomoći unapred...

[Ovu poruku je menjao 5h0ck dana 20.05.2008. u 02:21 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prokleti encoding22.05.2008. u 00:35 - pre 155 meseci
ja uvek koristim utf8 svuda, tako da nisam imao tih problema, ali jesam imao problema sa slanjem ajax odgovora, tj sa prikazivanjem rezultata putem javascripta. javascript mi je "jeo" nasa slova sve dok nisam poceo da koristim ovu f-ju za slanje rezultata:
Code:

function ajax_output($string)
{
    $range = array_merge(range(0, 7), array(11), range(14, 31));

    echo str_replace
    (
        array_map(create_function('&$i', 'return chr($i);'), $range),
        array_map(create_function('&$i', 'return $i ? "\\u00".sprintf("%02x", $i) : "\\u0000";'), $range),
        json_encode($string)
    );
}

pokusaj, mozda ti resi problem, ali nisam siguran (jel ti je strana cp1250 a ovo enkoduje u unicode... mada moguce je da js prebaci to atomatski u cp1250 ali nisam siguran)
 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: Prokleti encoding22.05.2008. u 12:02 - pre 155 meseci
Hvala na odgovoru, ali mi nažalost nije uspelo... :(

Izbaci mi prazan string...
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prokleti encoding22.05.2008. u 13:04 - pre 155 meseci
sorry, zaboravio sam da uklonim ovo json_encode... ja tu fju koristim da vratim json output (posto je to jedini nacin komuniciranja izmedju klijenta i servera koji ja koristim)... neke verzije PHP-a nemaju ugradjenu json_encode fju (zato ja koristim moju) pa je moguce da je to ono sto ti pravi problem jer ova f-ja bi trebala da ti vrati prazan string samo ako je parametar koji si joj prosledio prazan string...

znaci ovako:
Code:

function ajax_output($string)
{
    $range = array_merge(range(0, 7), array(11), range(14, 31));

    echo str_replace
    (
        array_map(create_function('&$i', 'return chr($i);'), $range),
        array_map(create_function('&$i', 'return $i ? "\\u00".sprintf("%02x", $i) : "\\u0000";'), $range),
        $string
    );
}

 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: Prokleti encoding22.05.2008. u 15:05 - pre 155 meseci
Ovoga puta je uspeo da izbaci rezultat, ali nije promenio ishod... Što bi se reklo: "Operacija uspela - pacijent umro".

Nije mi do smejanja.

Hvala na trudu, Aleksandre!
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prokleti encoding22.05.2008. u 18:12 - pre 155 meseci
pa to ti je problem kad radis sa vise encodinga... zar ti nije najlakse da promenis encoding svake html strane na utf-8?
 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: Prokleti encoding23.05.2008. u 01:05 - pre 155 meseci
Iskreno, tako sam i počeo! Sve sa UTF-om, ali se sećam da sam imao nekih problema sa prikazivanjem nekih slova, i onda sam našao rešenje ovde na ES-u i to sam primenio i sve funkcionise (tada nisam ni znao za AJAX :) )

Sada mi je problem zbog baze, najlakše mi je da promenim encoding na svim stranicam jer sam stavio include header-a, ali je problem sa bazom... Ona je UTF.

I ako sada prebacim strane na UTF, onda će mi ove ostale ispise prikazati drugačije!
Šta da stavim na strane, a šta za bazu, a da radi i latinica i ćirilica i da prihvata unos od PHP-a (većina) i AJAX-a?
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Prokleti encoding23.05.2008. u 15:07 - pre 155 meseci
pa evo ja sad radim na jednom sajtu koji ima latinicnu i cirilicnu verziju i nemam nikakvih problema, a sto se tice encodinga: baza mi je utf-8, svi php i js fajlovi su mi utf8 i nema problema...

samo jedna napomena: obavezno izvrsi ovaj query odma' po konektovanju na bazu: SET NAMES `utf8`
 
Odgovor na temu

jazzieDev
Dino Ivankov
freelancer
Beograd

Član broj: 177955
Poruke: 17
*.cpe.vektor.net.



Profil

icon Re: Prokleti encoding23.05.2008. u 15:18 - pre 155 meseci
Probaj da izbaferovan html output "strpas" u promenljivu $output=ob_end_clean() pa da je provuces kroz neku od funkcija koje mozes naci na strani http://www.captain.at/howto-ph...ascript-decodeURIComponent.php
Sa klijent strane, odradi decodeURI(Component) response-a i trebalo bi da dobijes to sto ti treba. Nisam siguran, ali mislim da encoding strane (response-a) da bi ovo radilo ipak treba da bude utf-8.
 
Odgovor na temu

5h0ck
Beograd

Član broj: 14896
Poruke: 322
*.static.ikomline.net.



+1 Profil

icon Re: Prokleti encoding27.07.2008. u 10:14 - pre 153 meseci
Došao sam do sledećeg zaključka:

Baza je UTF-8, ali sadržaj nije.
Ukoliko sadržaj promenim kroz UTF-8 stranu i izmenim sve kerfeke našim slovima, a zatim to snimim nazad u bazu, tekst na oba pisma će da se prikazuje normalno ukoliko je stranica UTF.

Da promenim encoding svih strana - nije problem.
Ali da promenim sadržaj baze, odnosno da konvertujem te karaktere, e to je problem s obzirom na količinu!

Da li postoji neki način za automatsko konvertovanje tih karaktera?
Gledao sam na sve strane, ali izgleda mrka kapa...
 
Odgovor na temu

[es] :: Javascript i AJAX :: Prokleti encoding

[ Pregleda: 2229 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.