IE 5.5: Formatting, URIs, and Stack Operations : Encoding and Decoding URIs | WebReference

IE 5.5: Formatting, URIs, and Stack Operations : Encoding and Decoding URIs


IE 5.5: Formatting, URIs, and Stack Operations

Encoding and Decoding URIs

The URI (Universal Resource Index) is a standard format for specifying resources over the Internet. The principle behind this standard is that all its member characters are alphanumeric. All non-alphanumeric characters are replaced by a string in the form of "%xy" where xy being the ASCII encoding of the non-alphanumeric character. The target set of characters belong to to the ISO Latin-1 character set. The ISO Latin-1 (8859-1) is the standard set of characters used over the Internet. Only this standard is guaranteed to be supported on a Web site.

Internet Explorer 5.5 introduced four new methods to encode strings to URIs as well as to decode URIs to strings. The first method, encodeURI(string), encodes a string as a full URI. Let's take an example. The following line:

alert(encodeURI("My phone # is 123-456-7890")); 

should generate the following alert box:

Notice that the # character is considered an alphanumeric one and is not converted. The second URI conversion, encodeURIComponent(string), method encodes a string as a URI component. In this conversion, some characters (like the #) are not considered alphanumeric, and are converted to their numeric representation. Let's take the same example as above:

alert(encodeURIComponent("My phone # is 123-456-7890")); 

and see the alert box that pops up:

The opposite conversion is done by decodeURI(uri) and decodeURIComponent(uri). Let's take the previous encoded URI and try to decipher them back to their original strings. Starting with decodeURI(uri):

alert(decodeURI("My%20phone%20 #%20is%20123-456-7890")); 

you get the expected alert box:

Using decodeURIComponent(uri):

alert(decodeURIComponent("My%20phone%20 %23%20is%20123-456-7890")); 

you get the same alert box as above. If you try to decode the string with the %23 above with the other decoder (decodeURI()), you will get the %23, i.e. as undecoded.

Next: How to run the Stack operations

http://www.internet.com

Produced by Yehuda Shiran and Tomer Shiran

Created: March 14, 2000
Revised: April 26, 2000

URL: http://www.webreference.com/js/column59/7.html