Kas dar nesupratot, čia įrašas kolegoms programuotojams :-)
Turėjau tokią problemą: reikėjo su JS pasiimti lietuvišką windows-1257 koduotą tekstą iš cookie. Problema tame, kad nuskaitant informaciją iš kukio su JS, vietoj lietuviškų raidžių atsiranda encodinti stringai.
Pavyzdys: PHP kode padarome:
break
setcookie('kukis', 'ąčęėįšųūž');
Po kukio informacijos nuskaitymo su JavaScript (kurios dėl vietos stokos neaprašinėsiu), gauname:
break
"%E0%E8%E6%EB%E1%F0%F8%FB%FE"
bandom:
break
unescape("%E0%E8%E6%EB%E1%F0%F8%FB%FE")
gaunam:
break
àèæëáðøûþ
blogai, nes reikia:
break
ąčęėįšųūž
Pasukau galvą ir išsprendžiau:
```break function fix_lt_chars(str) { var lt_from = Array(‘%E0’, ‘%E8’, ‘%E6’, ‘%EB’, ‘%E1’, ‘%F0’, ‘%F8’, ‘%FB’, ‘%FE’, ‘%C0’, ‘%C8’, ‘%C6’, ‘%CB’, ‘%C1’, ‘%D0’, ‘%D8’, ‘%DB’, ‘%DE’); var lt_to = Array(‘%u0105’, ‘%u010D’, ‘%u0119’, ‘%u0117’, ‘%u012F’, ‘%u0161’, ‘%u0173’, ‘%u016B’, ‘%u017E’, ‘%u0104’, ‘%u010C’, ‘%u0118’, ‘%u0116’, ‘%u012E’, ‘%u0160’, ‘%u0172’, ‘%u016A’, ‘%u017D’);
l = lt_from.length;
for (i=0;i < l; i++)
{
str = str.replace(lt_from[i], lt_to[i]);
}
return str; }
gera_reiksme = unescape(fix_lt_chars(“%E0%E8%E6%EB%E1%F0%F8%FB%FE”)); ```
gaunam:
break
ąčęėįšųūž
Sprendimas bjaurus, bet ką daryti, kai tas kukis viena esminių sistemos dalių, kurios neišeina pakeisti ;-).
Komentarai
Aidas Kasparas
Dominykas
Žilvinas
Emilis
pumba
Emilis
Komentuoti šio įrašo nebegalima. Komentarų sistema išjungta.