From: "Saved by Windows Internet Explorer 8"
Subject: URL Encoding
Date: Wed, 24 Mar 2010 11:46:47 -0400
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CACB47.AF4483E0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18005

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CACB47.AF4483E0
Content-Type: text/html;
	charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=3D(0022)http://internet.e-mail =
--><HTML><HEAD><TITLE>URL Encoding</TITLE>
<META content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3DContent-Type><LINK=20
id=3Dthecss rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.blooberry.com/indexdot/ss/2.css">
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.blooberry.com/indexdot/scripts/csschange.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
var hexVals =3D new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", =
"9",=0A=
              "A", "B", "C", "D", "E", "F");=0A=
var unsafeString =3D "\"<>%\\^[]`\+\$\,";=0A=
// deleted these chars from the include list ";", "/", "?", ":", "@", =
"=3D", "&" and #=0A=
// so that we could analyze actual URLs=0A=
=0A=
function isUnsafe(compareChar)=0A=
// this function checks to see if a char is URL unsafe.=0A=
// Returns bool result. True =3D unsafe, False =3D safe=0A=
{=0A=
if (unsafeString.indexOf(compareChar) =3D=3D -1 && =
compareChar.charCodeAt(0) > 32=0A=
    && compareChar.charCodeAt(0) < 123)=0A=
   { return false; } // found no unsafe chars, return false=0A=
else=0A=
   { return true; }=0A=
}=0A=
=0A=
function decToHex(num, radix)=0A=
// part of the hex-ifying functionality=0A=
{=0A=
var hexString =3D "";=0A=
while (num >=3D radix)=0A=
      {=0A=
       temp =3D num % radix;=0A=
       num =3D Math.floor(num / radix);=0A=
       hexString +=3D hexVals[temp];=0A=
      }=0A=
hexString +=3D hexVals[num];=0A=
return reversal(hexString);=0A=
}=0A=
=0A=
function reversal(s) // part of the hex-ifying functionality=0A=
{=0A=
var len =3D s.length;=0A=
var trans =3D "";=0A=
for (i=3D0; i<len; i++)=0A=
    { trans =3D trans + s.substring(len-i-1, len-i); }=0A=
s =3D trans;=0A=
return s;=0A=
}=0A=
=0A=
function convert(val) // this converts a given char to url hex form=0A=
{ return  "%" + decToHex(val.charCodeAt(0), 16); }=0A=
=0A=
function setRadio()=0A=
// gets the radio state and swaps it. Returns state=0A=
{=0A=
var state;=0A=
if (document.forms[0].state.value =3D=3D "none")=0A=
    {=0A=
     document.forms[0].state.value =3D "urlenc"; // set new state=0A=
     document.forms[0].enc[1].checked =3D true;  // set new radio button=0A=
    }=0A=
else=0A=
   {=0A=
    document.forms[0].state.value =3D "none";  // set new state=0A=
    document.forms[0].enc[0].checked =3D true; // set new radio button=0A=
   }=0A=
return document.forms[0].state.value;=0A=
}=0A=
=0A=
function changeIt(val)=0A=
// changed Mar 25, 2002: added if on 122 and else block on 129 to =
exclude Unicode range=0A=
{=0A=
var state   =3D setRadio();=0A=
var len     =3D val.length;=0A=
var backlen =3D len;=0A=
var i       =3D 0;=0A=
=0A=
var newStr  =3D "";=0A=
var frag    =3D "";=0A=
var encval  =3D "";=0A=
var original =3D val;=0A=
=0A=
if (state =3D=3D "none") // needs to be converted to normal chars=0A=
   {=0A=
     while (backlen > 0)=0A=
           {=0A=
             lastpercent =3D val.lastIndexOf("%");=0A=
             if (lastpercent !=3D -1) // we found a % char. Need to =
handle=0A=
                {=0A=
                  // everything *after* the %=0A=
                  frag =3D val.substring(lastpercent+1,val.length);=0A=
                  // re-assign val to everything *before* the %=0A=
                  val  =3D val.substring(0,lastpercent);=0A=
                  if (frag.length >=3D 2) // end contains unencoded=0A=
                     {=0A=
                     //  alert ("frag is greater than or equal to 2");=0A=
                       encval =3D frag.substring(0,2);=0A=
                       newStr =3D frag.substring(2,frag.length) + newStr;=0A=
                       //convert the char here. for now it just doesn't =
add it.=0A=
                       if =
("01234567890abcdefABCDEF".indexOf(encval.substring(0,1)) !=3D -1 &&=0A=
                           =
"01234567890abcdefABCDEF".indexOf(encval.substring(1,2)) !=3D -1)=0A=
                          {=0A=
                           encval =3D =
String.fromCharCode(parseInt(encval, 16)); // hex to base 10=0A=
                           newStr =3D encval + newStr; // prepend the =
char in=0A=
                          }=0A=
                       // if so, convert. Else, ignore it.=0A=
                     }=0A=
                  // adjust length of the string to be examined=0A=
                  backlen =3D lastpercent;=0A=
                 // alert ("backlen at the end of the found % if is: " + =
backlen);=0A=
                }=0A=
            else { newStr =3D val + newStr; backlen =3D 0; } // if there =
is no %, just leave the value as-is=0A=
           } // end while=0A=
   }         // end 'state=3Dnone' conversion=0A=
else         // value needs to be converted to URL encoded chars=0A=
   {=0A=
    for (i=3D0;i<len;i++)=0A=
        {=0A=
          if (val.substring(i,i+1).charCodeAt(0) < 255)  // hack to =
eliminate the rest of unicode from this=0A=
             {=0A=
              if (isUnsafe(val.substring(i,i+1)) =3D=3D false)=0A=
                 { newStr =3D newStr + val.substring(i,i+1); }=0A=
              else=0A=
                 { newStr =3D newStr + convert(val.substring(i,i+1)); }=0A=
             }=0A=
          else // woopsie! restore.=0A=
             {=0A=
               alert ("Found a non-ISO-8859-1 character at position: " + =
(i+1) + ",\nPlease eliminate before continuing.");=0A=
               document.forms[0].state.value =3D "none";=0A=
               document.forms[0].enc[0].checked =3D true; // set back to =
"no encoding"=0A=
               newStr =3D original; i=3Dlen;                // =
short-circuit the loop and exit=0A=
             }=0A=
        }=0A=
=0A=
   }=0A=
    document.forms[0].origval.value =3D newStr;=0A=
}=0A=
</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18882"></HEAD>
<BODY onload=3DreadSS()>
<H1 align=3Dcenter><SPAN class=3Dpagetitle>URL Encoding<BR>(or: 'What =
are those=20
"%20" codes in URLs?')</SPAN><BR><FONT size=3D2>=3D <SPAN =
class=3Dsitetitle>Index DOT=20
Html</SPAN> by <A =
href=3D"http://www.blooberry.com/indexdot/misc/email.htm">Brian=20
Wilson</A> =3D</FONT></H1>
<CENTER>
<TABLE border=3D3 cellSpacing=3D0 cellPadding=3D5>
  <TBODY>
  <TR>
    <TD align=3Dmiddle><FONT size=3D2><A=20
      href=3D"http://www.blooberry.com/indexdot/html/index.html">Main =
Index</A> |=20
      <A =
href=3D"http://www.blooberry.com/indexdot/html/tagindex/a.htm">Element=20
      Index</A> | <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tree/htmltree.htm">Element=
=20
      Tree</A> | <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/supportkey/a.htm">HTML=20
      Support History</A></FONT></TD></TR>
  <TR>
    <TD align=3Dmiddle><A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/topics/urlencoding.htm#rfc=
1738">RFC=20
      1738</A> | <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/topics/urlencoding.htm#wha=
twhy">Which=20
      characters must be encoded and why</A><BR><A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/topics/urlencoding.htm#how=
">How=20
      to URL encode characters</A> | <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/topics/urlencoding.htm#rol=
lown">URL=20
      encode a character</A></TD></TR></TBODY></TABLE></CENTER><BR><BR>
<CENTER>
<TABLE cellPadding=3D3 width=3D"90%">
  <TBODY>
  <TR>
    <TD colSpan=3D3>
      <HR SIZE=3D1>
    </TD></TR>
  <TR>
    <TD colSpan=3D3 align=3Dleft><A name=3Drfc1738></A><BIG><B =
class=3Dmainheading>RFC=20
      1738: Uniform Resource Locators (URL) specification</B></BIG>=20
      <HR align=3Dleft SIZE=3D1 width=3D"30%">
      The specification for URLs (<A=20
      href=3D"http://www.rfc-editor.org/rfc/rfc1738.txt">RFC 1738</A>, =
Dec. '94)=20
      poses a problem, in that it limits the use of allowed characters =
in URLs=20
      to only a limited subset of the US-ASCII character set:=20
      <BLOCKQUOTE class=3Dquotation>"...Only alphanumerics [0-9a-zA-Z], =
the=20
        special characters "$-_.+!*'()," <B>[not including the quotes - =
ed]</B>,=20
        and reserved characters used for their reserved purposes may be =
used=20
        unencoded within a URL."</BLOCKQUOTE>HTML, on the other hand, =
allows the=20
      entire range of the <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm">ISO-885=
9-1=20
      (ISO-Latin)</A> character set to be used in documents - and HTML4 =
expands=20
      the allowable range to include all of the <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm#unicode"=
>Unicode=20
      character set</A> as well. In the case of non-ISO-8859-1 =
characters=20
      (characters above FF hex/255 decimal in the Unicode set), they =
just can=20
      not be used in URLs, because there is no safe way to specify =
character set=20
      information in the URL content yet [<A=20
      href=3D"http://www.rfc-editor.org/rfc/rfc2396.txt">RFC2396</A>.]=20
      <BR><BR>URLs should be encoded everywhere in an HTML document that =
a URL=20
      is referenced to import an object (<A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/a/a-hyperlink.htm=
">A</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/a/applet.htm">APP=
LET</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/a/area.htm">AREA<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/b/base.htm">BASE<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/b/bgsound.htm">BG=
SOUND</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/b/body.htm">BODY<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/e/embed.htm">EMBE=
D</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/f/form.htm">FORM<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/f/frame.htm">FRAM=
E</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/i/iframe.htm">IFR=
AME</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/i/ilayer.htm">ILA=
YER</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/i/image.htm">IMG<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/i/isindex.htm">IS=
INDEX</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/i/inputtext.htm">=
INPUT</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/l/layer.htm">LAYE=
R</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/l/link.htm">LINK<=
/A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/o/object.htm">OBJ=
ECT</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/s/script.htm">SCR=
IPT</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/s/sound.htm">SOUN=
D</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/t/table.htm">TABL=
E</A>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/t/thtd.htm">TD</A=
>,=20
      <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/t/thtd.htm">TH</A=
>,=20
      and <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/t/tr.htm">TR</A> =

      elements.) <BR><BR><A name=3Dwhatwhy></A><BIG><B =
class=3Dmainheading>What=20
      characters need to be encoded and why?</B></BIG>=20
      <HR align=3Dleft SIZE=3D1 width=3D"30%">

      <TABLE>
        <TBODY>
        <TR>
          <TD colSpan=3D3><B class=3Dsubheading>ASCII Control =
characters</B></TD></TR>
        <TR>
          <TD rowSpan=3D2>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD vAlign=3Dtop><B class=3Dl3heading>Why:</B></TD>
          <TD>These characters are not printable.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><B class=3Dl3heading>Characters:</B></TD>
          <TD>Includes the <A=20
            =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm">ISO-885=
9-1=20
            (ISO-Latin)</A> character ranges 00-1F hex (0-31 decimal) =
and 7F=20
            (127 decimal.)</TD></TR></TBODY></TABLE>
      <TABLE>
        <TBODY>
        <TR>
          <TD colSpan=3D3><B class=3Dsubheading>Non-ASCII =
characters</B></TD></TR>
        <TR>
          <TD rowSpan=3D2>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD vAlign=3Dtop><B class=3Dl3heading>Why:</B></TD>
          <TD>These are by definition not legal in URLs since they are =
not in=20
            the ASCII set.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><B class=3Dl3heading>Characters:</B></TD>
          <TD>Includes the entire "top half" of the <A=20
            =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm">ISO-Lat=
in</A>=20
            set 80-FF hex (128-255 decimal.)</TD></TR></TBODY></TABLE>
      <TABLE>
        <TBODY>
        <TR>
          <TD colSpan=3D3><B class=3Dsubheading>"Reserved =
characters"</B></TD></TR>
        <TR>
          <TD rowSpan=3D2>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD vAlign=3Dtop><B class=3Dl3heading>Why:</B></TD>
          <TD>URLs use some characters for special use in defining their =

            syntax. When these characters are not used in their special =
role=20
            inside a URL, they need to be encoded.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><B class=3Dl3heading>Characters:</B></TD>
          <TD>
            <TABLE border=3D1 cellSpacing=3D0 cellPadding=3D3>
              <TBODY>
              <TR>
                <TH>Character</TH>
                <TH>Code<BR>Points<BR>(Hex)</TH>
                <TH>Code<BR>Points<BR>(Dec)</TH></TR>
              <TR>
                <TD vAlign=3Dtop noWrap>&nbsp;Dollar =
("$")<BR>&nbsp;Ampersand=20
                  ("&amp;")<BR>&nbsp;Plus ("+")<BR>&nbsp;Comma=20
                  (",")<BR>&nbsp;Forward slash/Virgule =
("/")<BR>&nbsp;Colon=20
                  (":")<BR>&nbsp;Semi-colon (";")<BR>&nbsp;Equals=20
                  ("=3D")<BR>&nbsp;Question mark ("?")<BR>&nbsp;'At' =
symbol=20
                  ("@")<BR></TD>
                <TD vAlign=3Dtop=20
                  =
align=3Dmiddle>24<BR>26<BR>2B<BR>2C<BR>2F<BR>3A<BR>3B<BR>3D<BR>3F<BR>40</=
TD>
                <TD vAlign=3Dtop=20
                  =
align=3Dmiddle>36<BR>38<BR>43<BR>44<BR>47<BR>58<BR>59<BR>61<BR>63<BR>64</=
TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <TABLE>
        <TBODY>
        <TR>
          <TD colSpan=3D3><B class=3Dsubheading>"Unsafe =
characters"</B></TD></TR>
        <TR>
          <TD rowSpan=3D2>&nbsp;&nbsp;&nbsp;&nbsp;</TD>
          <TD vAlign=3Dtop><B class=3Dl3heading>Why:</B></TD>
          <TD>Some characters present the <EM>possibility</EM> of being=20
            misunderstood within URLs for various reasons. These =
characters=20
            should also always be encoded.</TD></TR>
        <TR>
          <TD vAlign=3Dtop><B class=3Dl3heading>Characters:</B></TD>
          <TD>
            <TABLE border=3D1 cellSpacing=3D0 cellPadding=3D3>
              <TBODY>
              <TR>
                <TH>Character</TH>
                <TH>Code<BR>Points<BR>(Hex)</TH>
                <TH>Code<BR>Points<BR>(Dec)</TH>
                <TH>Why encode?</TH></TR>
              <TR>
                <TD>Space</TD>
                <TD align=3Dmiddle>20</TD>
                <TD align=3Dmiddle>32</TD>
                <TD vAlign=3Dtop>Significant sequences of spaces may be =
lost in=20
                  some uses (especially multiple spaces)</TD></TR>
              <TR>
                <TD noWrap>Quotation marks<BR>'Less Than' symbol=20
                  ("&lt;")<BR>'Greater Than' symbol ("&gt;")</TD>
                <TD align=3Dmiddle>22<BR>3C<BR>3E</TD>
                <TD align=3Dmiddle>34<BR>60<BR>62</TD>
                <TD vAlign=3Dtop>These characters are often used to =
delimit URLs=20
                  in plain text.</TD></TR>
              <TR>
                <TD noWrap>'Pound' character ("#")</TD>
                <TD align=3Dmiddle>23</TD>
                <TD align=3Dmiddle>35</TD>
                <TD vAlign=3Dtop>This is used in URLs to indicate where =
a=20
                  fragment identifier (bookmarks/anchors in HTML) =
begins.</TD></TR>
              <TR>
                <TD noWrap>Percent character ("%")</TD>
                <TD align=3Dmiddle>25</TD>
                <TD align=3Dmiddle>37</TD>
                <TD vAlign=3Dtop>This is used to URL encode/escape other =

                  characters, so it should itself also be =
encoded.</TD></TR>
              <TR>
                <TD noWrap><B>Misc. =
characters:</B><BR>&nbsp;&nbsp;&nbsp;Left=20
                  Curly Brace ("{")<BR>&nbsp;&nbsp;&nbsp;Right Curly =
Brace=20
                  ("}")<BR>&nbsp;&nbsp;&nbsp;Vertical Bar/Pipe=20
                  ("|")<BR>&nbsp;&nbsp;&nbsp;Backslash=20
                  ("\")<BR>&nbsp;&nbsp;&nbsp;Caret=20
                  ("^")<BR>&nbsp;&nbsp;&nbsp;Tilde=20
                  ("~")<BR>&nbsp;&nbsp;&nbsp;Left Square Bracket=20
                  ("[")<BR>&nbsp;&nbsp;&nbsp;Right Square Bracket=20
                  ("]")<BR>&nbsp;&nbsp;&nbsp;Grave Accent ("`")</TD>
                <TD=20
                  =
align=3Dmiddle><BR>7B<BR>7D<BR>7C<BR>5C<BR>5E<BR>7E<BR>5B<BR>5D<BR>60</TD=
>
                <TD=20
                  =
align=3Dmiddle><BR>123<BR>125<BR>124<BR>92<BR>94<BR>126<BR>91<BR>93<BR>96=
</TD>
                <TD vAlign=3Dtop>Some systems can possibly modify these=20
                  =
characters.</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR><A=
=20
      name=3Dhow></A><BIG><B class=3Dmainheading>How are characters URL=20
      encoded?</B></BIG>=20
      <HR align=3Dleft SIZE=3D1 width=3D"30%">
      <SPAN class=3Dtext>URL encoding of a character consists of a "%" =
symbol,=20
      followed by the two-digit hexadecimal representation =
(case-insensitive) of=20
      the <A=20
      =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm">ISO-Lat=
in</A>=20
      code point for the character.</SPAN>=20
      <DL>
        <DT><B class=3Dsubheading>Example</B>=20
        <DD>
        <DIV class=3Dexample>
        <UL>
          <LI>Space =3D decimal code point 32 in the <A=20
          =
href=3D"http://www.blooberry.com/indexdot/html/tagpages/text.htm">ISO-Lat=
in</A>=20
          set.=20
          <LI>32 decimal =3D 20 in hexadecimal=20
          <LI>The URL encoded representation will be "%20"=20
      </LI></UL></DIV></DD></DL><BR><A name=3Drollown></A><BIG><B=20
      class=3Dmainheading>URL encoding converter</B></BIG>=20
      <HR align=3Dleft SIZE=3D1 width=3D"30%">
      <SPAN class=3Dtext>The box below allows you to convert content =
between its=20
      unencoded and encoded forms. The initial input state is considered =
to be=20
      "unencoded" (hit 'Convert' at the beginning to start in the =
encoded=20
      state.) Further, to allow actual URLs to be encoded, this little =
converter=20
      does not encode URL syntax characters (the <B>";", "/", "?", ":", =
"@",=20
      "=3D", "#"</B> and <B>"&amp;"</B> characters)...if you also need =
to encode=20
      these characters for any reason, see the "Reserved characters" =
table above=20
      for the appropriate encoded values.<BR><BR><B class=3Dsmalltext><B =

      class=3Dalert>NOTE:</B><BR>This converter uses the =
String.charCodeAt and=20
      String.fromCharCode functions, which are only available in =
Javascript=20
      version 1.2 or better, so it doesn't work in Opera 3.x and below, =
Netscape=20
      3 and below, and IE 3 and below. Browser detection <EM>can</EM> be =

      tiresome, so this will just fail in those browsers...you have been =
warned.=20
      8-}</B> </SPAN><BR>
      <FORM name=3Durlenc><INPUT value=3Dnone type=3Dhidden =
name=3Dstate>=20
      <BLOCKQUOTE>
        <TABLE border=3D0>
          <TBODY>
          <TR>
            <TH colSpan=3D3><INPUT size=3D50 name=3Dorigval></TH></TR>
          <TR>
            <TD align=3Dmiddle><INPUT CHECKED type=3Dradio =
name=3Denc></TD>
            <TD align=3Dmiddle><INPUT =
onclick=3DchangeIt(document.forms[0].origval.value); value=3D"<-- =
Convert -->" type=3Dbutton></TD>
            <TD align=3Dmiddle><INPUT type=3Dradio name=3Denc></TD></TR>
          <TR>
            <TH><FONT size=3D2>No<BR>Encoding</FONT></TH>
            <TH></TH>
            <TH><FONT=20
      =
size=3D2>URL-Safe<BR>Encoding</FONT></TH></TR></TBODY></TABLE></BLOCKQUOT=
E></FORM><BR><A=20
      name=3Dpeculiar></A><BIG><B class=3Dmainheading>Browser=20
      Peculiarities</B></BIG>=20
      <HR align=3Dleft SIZE=3D1 width=3D"30%">

      <UL>
        <LI>Internet Explorer is notoriously relaxed in its requirements =
for=20
        encoding spaces in URLs. This tends to contribute to author =
sloppiness=20
        in authoring URLs. Keep in mind that Netscape and Opera are much =
more=20
        strict on this point, and spaces <EM>MUST</EM> be encoded if the =
URL is=20
        to be considered to be correct. </LI></UL>
  <TR>
    <TD colSpan=3D3>
      <HR SIZE=3D1>
    </TD></TR></TBODY></TABLE></CENTER><BR><A=20
href=3D"http://www.blooberry.com/indexdot/misc/copyright.htm">Boring =
Copyright=20
Stuff...</A> <BR></BODY></HTML>

------=_NextPart_000_0000_01CACB47.AF4483E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blooberry.com/indexdot/ss/2.css

.ltop {
	BORDER-BOTTOM-STYLE: solid; BORDER-BOTTOM-COLOR: #000000; =
BORDER-RIGHT-STYLE: solid; BORDER-TOP-COLOR: #000000; BORDER-TOP-STYLE: =
solid; BORDER-RIGHT-COLOR: #000000; BORDER-LEFT-STYLE: solid; =
BORDER-LEFT-COLOR: #000000
}
.ltdvdr {
	BORDER-BOTTOM-STYLE: solid; BORDER-BOTTOM-COLOR: #000000; =
BORDER-RIGHT-STYLE: solid; BORDER-TOP-COLOR: #000000; BORDER-TOP-STYLE: =
solid; BORDER-RIGHT-COLOR: #000000; BORDER-LEFT-STYLE: solid; =
BORDER-LEFT-COLOR: #000000
}
.lbot {
	BORDER-BOTTOM-STYLE: solid; BORDER-BOTTOM-COLOR: #000000; =
BORDER-RIGHT-STYLE: solid; BORDER-TOP-COLOR: #000000; BORDER-TOP-STYLE: =
solid; BORDER-RIGHT-COLOR: #000000; BORDER-LEFT-STYLE: solid; =
BORDER-LEFT-COLOR: #000000
}
.lbdvdr {
	BORDER-BOTTOM-STYLE: solid; BORDER-BOTTOM-COLOR: #000000; =
BORDER-RIGHT-STYLE: solid; BORDER-TOP-COLOR: #000000; BORDER-TOP-STYLE: =
solid; BORDER-RIGHT-COLOR: #000000; BORDER-LEFT-STYLE: solid; =
BORDER-LEFT-COLOR: #000000
}
.ltop {
	BORDER-RIGHT-WIDTH: 3px; BORDER-TOP-WIDTH: 3px; BORDER-BOTTOM-WIDTH: =
3px; BORDER-LEFT-WIDTH: 0px
}
.ltdvdr {
	BORDER-RIGHT-WIDTH: 10px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-LEFT-WIDTH: 0px
}
.lbot {
	BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 3px; BORDER-BOTTOM-WIDTH: =
0px; FONT-SIZE: 8pt; BORDER-LEFT-WIDTH: 0px
}
.lbdvdr {
	BORDER-RIGHT-WIDTH: 10px; BORDER-TOP-WIDTH: 3px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-LEFT-WIDTH: 0px
}
.srchbox {
	BORDER-BOTTOM: #999999 2px solid; BORDER-LEFT: #999999 2px solid; =
BACKGROUND-COLOR: transparent; FONT-FAMILY: verdana; BORDER-TOP: #999999 =
2px solid; BORDER-RIGHT: #999999 2px solid
}
.mainbox {
	BORDER-BOTTOM: #999999 3px solid; BORDER-LEFT: #999999 3px solid; =
PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BORDER-TOP: =
#999999 3px solid; BORDER-RIGHT: #999999 3px solid; PADDING-TOP: 1px
}
.sidebarbox {
	BORDER-BOTTOM: #999999 3px solid; BORDER-LEFT: #999999 3px solid; =
PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BORDER-TOP: =
#999999 3px solid; BORDER-RIGHT: #999999 3px solid; PADDING-TOP: 1px
}
.sidebar {
	FONT-FAMILY: arial; FONT-SIZE: 8pt
}
.indexsitetitle {
	LINE-HEIGHT: 20pt; COLOR: #006600; FONT-SIZE: 16pt
}
.colheaders {
	COLOR: #ffffff; FONT-SIZE: 14pt; TEXT-DECORATION: none
}
.field {
	BACKGROUND-COLOR: #999999
}
.sbalert {
	COLOR: #990000
}
BODY {
	BACKGROUND-COLOR: #f0e0c0
}
BODY {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
DL {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
DT {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
DD {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
UL {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
OL {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
LI {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
TD {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
TH {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
.text {
	FONT-FAMILY: verdana, arial, geneva, sans-serif; COLOR: #000000; =
FONT-SIZE: 10pt
}
.gc1 {
	COLOR: #006600; FONT-WEIGHT: bold
}
.gc2 {
	COLOR: #006600; FONT-WEIGHT: bold
}
.gc2 {
	TEXT-ALIGN: center
}
HR {
	COLOR: #333333
}
A:link {
	COLOR: #003333; FONT-WEIGHT: bold
}
A:visited {
	COLOR: #003333; FONT-WEIGHT: bold
}
A:hover {
	BACKGROUND: #ffffff; COLOR: #003333; FONT-WEIGHT: bold
}
.pagetitle {
	COLOR: #000000; FONT-SIZE: 22pt
}
.subtitle {
	COLOR: #006600; FONT-SIZE: 22pt
}
.sitetitle {
	COLOR: #000080
}
.mainheading {
	BACKGROUND-COLOR: #7cadb4; FONT-FAMILY: arial, geneva, sans-serif; =
COLOR: #000066; FONT-SIZE: 15pt; FONT-WEIGHT: bold
}
.subheading {
	COLOR: #009999; FONT-SIZE: 13pt; FONT-WEIGHT: bold
}
.l3heading {
	COLOR: #660000; FONT-WEIGHT: bold
}
.alert {
	BACKGROUND-COLOR: #ffff66; COLOR: #000000
}
.quotation {
	BACKGROUND-COLOR: #ffff66; COLOR: #000000
}
.alert2 {
	BACKGROUND-COLOR: #ffffff; FONT-STYLE: normal; COLOR: #000000
}
.magicword {
	COLOR: #ff0000; FONT-WEIGHT: bold
}
.unselected {
	COLOR: #999999
}
.smalltext {
	FONT-SIZE: 9pt
}
.reallysmall {
	FONT-SIZE: 8pt
}
.largetext {
	FONT-SIZE: 15pt
}
.entityheader {
	COLOR: #006600; FONT-SIZE: 10pt; FONT-WEIGHT: bold
}
.taghead {
	COLOR: #003333; FONT-SIZE: 11pt
}
.attribhead {
	COLOR: #006600; FONT-SIZE: 11pt
}
.supporthead {
	COLOR: #990000; FONT-SIZE: 11pt
}
.tagindexhead {
	BORDER-BOTTOM: #009900 solid; BORDER-LEFT: #009900 solid; =
PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: =
22pt; BORDER-TOP: #009900 solid; BORDER-RIGHT: #009900 solid; =
PADDING-TOP: 0px
}
.example {
	BORDER-BOTTOM: #000099 thin solid; BORDER-LEFT: #000099 thin solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #d2b48c; MARGIN-TOP: 5px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: #000099 thin solid; =
BORDER-RIGHT: #000099 thin solid; PADDING-TOP: 5px
}
.tagname {
	COLOR: #000066; FONT-WEIGHT: bold
}
.tagattrib {
	COLOR: #660000
}
.selector {
	COLOR: #660000; FONT-WEIGHT: bold
}
.property {
	COLOR: #006600; FONT-WEIGHT: bold
}
.atrule {
	COLOR: #000066; FONT-WEIGHT: bold
}
.fs {
	BACKGROUND-COLOR: #3cb371; FONT-STYLE: italic; COLOR: #990000; =
FONT-WEIGHT: bold
}
.s {
	BACKGROUND-COLOR: #3cb371; COLOR: #ffffff
}
.sr {
	BORDER-BOTTOM: #990000 2px solid; BORDER-LEFT: #990000 2px solid; =
BACKGROUND-COLOR: #000000; COLOR: #ffffff; BORDER-TOP: #990000 2px =
solid; BORDER-RIGHT: #990000 2px solid; TEXT-DECORATION: none
}
.ns {
	COLOR: #999999
}
.colorname {
	COLOR: #660000; FONT-SIZE: xx-small
}
.colorvalue {
	COLOR: #000000; FONT-SIZE: x-small
}
.relevant {
	COLOR: #000066; FONT-WEIGHT: bold
}
A.relevant {
	COLOR: #006666; FONT-WEIGHT: bold
}
.external {
	COLOR: #009900
}

------=_NextPart_000_0000_01CACB47.AF4483E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.blooberry.com/indexdot/scripts/csschange.js


function readSS()
{=20
if (document.getElementById || document.all())=20
   {=20
    var allCookies =3D document.cookie;=20
    var Path =3D "";=20
    var ss =3D "2";

    Path =3D =
location.href.substring(0,location.href.indexOf("indexdot/")+9);

    if (allCookies !=3D "") // A cookie has been set
       {
        var strLen   =3D allCookies.length;
        var beginPos =3D allCookies.indexOf("ss=3D");

        if (beginPos !=3D -1)
           { ss =3D allCookies.substring(beginPos+3, beginPos+4); }

        if (Path !=3D "" && ss !=3D "2")   // Only switch if cookie =
exists and CSS is not the default
           {=20
             theFile =3D Path + "ss/" + ss + ".css";
             if (document.getElementById)
                { eval("document.getElementById(\"thecss\").href =3D \"" =
+ theFile + "\""); }
             else    // IE 4/5 case
                { eval("document.all.tags(\"thecss\")[0].href =3D \"" + =
theFile + "\""); }
           }
       }
   }
}
------=_NextPart_000_0000_01CACB47.AF4483E0--

