PDA

Pogčedajte punu verziju : UTF8 i JavaScript


krcko
30. 09. 2006., 23:02
evo ima nekih dobrih dva-tri sata se mucim oko ovoga i ne nalazim resenje.

problem:
radim na jednoj hta aplikaciji i hteo bih da implementiram language support.
language fajlovi su obicni .ini fajlovi koje citam pomocu ActiveXObjekta koji sam uradio u vb-u, problem mi je sto js ima problema sa utf8 stringom (fajl koji citam je sacuvan kao utf8 a vb-ov string je ionako unicode, znaci problem je u js).
tj tekst napisan na cirilici, recimo "Посетите" prikaze (alert, ili document.write) kao niz "kuka i motika", za te kuke i motike sam nashao resenje koje izgleda ovako:

String.prototype.fromUTF8 = function()
{

var string = "";
var i = 0;
var c = c1 = c2 = 0;

while (i < this.length)
{
c = this.charCodeAt(i);

if (c < 128)
{
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224))
{
c2 = this.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else
{
c2 = this.charCodeAt(i + 1);
c3 = this.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}

return string;
};

ali sad se javlja problem koji mi nikako nije jasan: string (na cirilici) "Посетите" izbacuje kao "иосењиње" znaci "П" zameni sa "и" a "т" sa "њ". ZASTO?? nije mi jasno kako neka slova lepo enkoduje a neka ne?

hvala na bilo kakvom odgovoru, ja cu ostati bez kose ako se budem jos zezao sa ovim...

btw ovaj kod nije moj, nasao sam ga na netu ja sam ga samo ubacio u prototype String objekta

poz svima

krcko
04. 10. 2006., 11:14
izgleda da je ovo mnogo komplikovano da se uradi u js (konvertovanje utf-8 karaktera) zato sam se okrenuo msxml-u i xml fajlovim i radi bez problema :)
ne znam zasto se nisam ranije setion...

@admini: izbrisite ovu temu, ne verujem da ce nekome koristiti...