Az escape()/unescape() nem alkalmas URL manipulációra többé
Egy aktuális feladat megoldása során derült fény erre a változásra, ami véleményem szerint sokakat érinthet, konkrétan azokat, akik a címben említett JavaScript függvényeket használják korrekt URL-ek összeállításához. A Mozilla alapú böngészők tavaly december óta megjelent változatai ugyanis módosítottak az escape() működésén, az IE pedig 5.5-ös verzió óta generál új formájú kódolt URL-eket.
Az UTF-beli karaktereket az %unnnn szerkezetű kódolást alkalmazva küldik tovább, ami ugyan kompatibilis az ECMAScript világszabvánnyal, de az URL kódolás RFC 2279-es leírásával nem. Ahhoz ugyanis a két bájton ábrázolt UTF karaktereket két külön kóddal kellene továbbítani %nn%nn formában (ahol n mindenütt egy hexa számjegyet jelöl). Ennek megoldásához bevezették az encodeURIComponent() és decodeURIComponent() párost, amivel a helyes URL kódolást el lehet érni. Ezzel már csak annyi a gond, hogy a korábbi böngészőkben így JavaScript kódunk nem lesz futtatható. Erre nyújt megoldást Tim Powell (a forráskódban látható a szükséges JavaScript kód).
■ Az UTF-beli karaktereket az %unnnn szerkezetű kódolást alkalmazva küldik tovább, ami ugyan kompatibilis az ECMAScript világszabvánnyal, de az URL kódolás RFC 2279-es leírásával nem. Ahhoz ugyanis a két bájton ábrázolt UTF karaktereket két külön kóddal kellene továbbítani %nn%nn formában (ahol n mindenütt egy hexa számjegyet jelöl). Ennek megoldásához bevezették az encodeURIComponent() és decodeURIComponent() párost, amivel a helyes URL kódolást el lehet érni. Ezzel már csak annyi a gond, hogy a korábbi böngészőkben így JavaScript kódunk nem lesz futtatható. Erre nyújt megoldást Tim Powell (a forráskódban látható a szükséges JavaScript kód).