$Web_URL_Encode and $Web_URL_Encode_Lstr

From m204wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Do web URL encoding

$Web_URL_Encode and $Web_URL_Encode_Lstr encode special characters into the URL "% hex hex" format, which has particular use constructing isindex strings for anchor tags or redirection.

Syntax

%out = $Web_URL_Encode( input_string )

$Web_URL_Encode takes a single string argument and returns that string with special characters encoded using the URL "% hex hex" format.

The only parameter is the input string to be encoded. If this string is omitted, a null string is returned.

Usage notes

  • $Web_URL_Encode_Lstr is identical to $Web_URL_Encode with the exception that it is longstring capable: it can take a longstring input and produce the appropriate longstring output.
  • For $Web_URL_Encode, if the result of the encoding produces a string longer than 255, the result is truncated, at 255 (or less, if necessary, to avoid producing a partial "% hex hex" sequence). For $Web_URL_Encode_Lstr, no truncation should occur.
  • $Web_URL_Encode and $Web_URL_Encode_Lstr are useful for composing the isindex string portion of a URL ("HTTP://host/path?isindex") for redirection, or for composing the HREF= value in the HTML anchor tag ("<A HREF=...").
  • * Use $Web_URL_Encode to create % hex hex like browser does with FORM METHOD=GET printText <form method=get action="{$Web_Hdr_Parm('URL')}"> printText Use this isindex: <input name=a value=""> %INPUTA = $Web_Parm('a') %URLENC = $Web_URL_Encode(%INPUTA) printText <input type=submit value=Submit> printText <br><a href="{$Web_Hdr_Parm('URL')}?input={%URLENC}">Click here for same result</a> printText <br><hr><br> printText <xmp> printText PARM a:{%INPUTA} printText URLENC:{%URLENC} printText </xmp>

    If you enter the following into the form:

    10 + 3.14 * R*R*R * 2/3

    The value displayed after URLENC is:

    10+%2B+3.14+*+R*R*R+*+2%2F3

    + is used to stand for a blank, % introduces a hex encoding,2B is the ASCII code for +, and 2F is the ASCII code for a forward slash ( / ). (Note: this is a subtle and tricky example.) Using Netscape 4.5 as the guide, the 4 non-alphanumerics that are not encoded are underscore ( _ ), hyphen ( - ), asterisk ( * ), and period ( . ).