по поводу проблем с кириллическими символами в виде %u0FFF вместо %FF при использовании escape() в MSIE и Opera7: для алфавитных кириллических символов вместо escape() можно использовать, например, такую функцию: Код: var alf='АаБбВвГ㥴ДдЕеЄєЖжЗзИиІіЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя'.split('') var alfP=['C0','E0','C1','E1','C2','E2','C3','E3','A5','B4','C4','E4', 'C5','E5','AA','BA','C6','E6','C7','E7','C8','E8','B2','B3','C9','E9','CA','EA','CB','EB','CC','EC','CD', 'ED','CE','EE','CF','EF','D0','F0','D1','F1','D2','F2','D3','F3','D4','F4','D5','F5','D6','F6','D7','F7','D8','F8','D9','F9','DA', 'FA','DB','FB', 'DC','FC','DD','FD','DE','FE','DF','FF'] function cyrEsc(Str){ for(var i=0;i<alf.length;i++){ var tmp=eval('/'+alf[i]+'/g') while(tmp.test(Str)){Str=Str.replace(tmp,'%'+alfP[i])} } return Str } | |