Sabtu, 19 Juni 2010

Javascript url decode, encode

Buzz It
Javascript url decode, encode

Javascript url decode, encode

in Javascript

You can use this Javascript to encode / decode url parameters. Script is fully compatible with UTF-8 encoding. It’s useful when u want to transfer data using AJAX technology, or for other operations which involve url parameter manipulation.

If you plan using UTF-8 encoding in your project don’t forget to set the page encoding to UTF-8 (Content-Type meta tag).

Source code for webtoolkit.url.js

/**

*

* URL encode / decode

* http://www.webtoolkit.info/

*

**/

var Url = {

// public method for url encoding

encode : function (string) {

return escape(this._utf8_encode(string));

},

// public method for url decoding

decode : function (string) {

return this._utf8_decode(unescape(string));

},

// private method for UTF-8 encoding _utf8_encode : function (string) {

string = string.replace(/\r\n/g,"\n");

var utftext = "";

for (var n = 0; n < string.length; n++) {

var c = string.charCodeAt(n);

if (c < 128) {

utftext += String.fromCharCode(c);

}

else if((c > 127) && (c < 2048)) {

utftext += String.fromCharCode((c >> 6) | 192);

utftext += String.fromCharCode((c & 63) | 128);

}

else {

utftext += String.fromCharCode((c >> 12) |

224);

utftext += String.fromCharCode(((c >> 6) & 63)

| 128);

utftext += String.fromCharCode((c & 63) | 128);

}

}

return utftext;

},

// private method for UTF-8 decoding

_utf8_decode : function (utftext) {

var string = "";

var i = 0;

var c = c1 = c2 = 0;

while ( i < utftext.length ) {

c = utftext.charCodeAt(i);

if (c < 128) {

string += String.fromCharCode(c);

i++;

}

else if((c > 191) && (c < 224)) {

c2 = utftext.charCodeAt(i+1);

string += String.fromCharCode(((c & 31) << 6) |

(c2 & 63));

i += 2;

}

else {

c2 = utftext.charCodeAt(i+1);

c3 = utftext.charCodeAt(i+2);

string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));

i += 3;

}

}

return string;

}

}

Sumber : http://khairulmaulana191188.blogspot.com/