Oracle9i Supplied PL/SQL Packages and Types Reference Release 2 (9.2) Part Number A96612-01 |
|
UTL_URL , 2 of 2
This function returns a URL with illegal characters (and optionally reserved characters) escaped using the %2-digit-hex-code
format.
UTL_URL.ESCAPE ( url IN VARCHAR2, escape_reserved_chars IN BOOLEAN DEFAULT FALSE, url_charset IN VARCHAR2 DEFAULT utl_http.body_charset) RETURN VARCHAR2;
Use this function to escape URLs that contain illegal characters as defined in the URL specification RFC 2396. The legal characters in URLs are:
A
through Z, a
through z,
and 0
through 9
-
), underscore (_
), period (.
), exclamation point (!
), tilde (~
), asterisk (*
), accent ('
), left parenthesis ( (
), right parenthesis ( )
)The reserved characters consist of:
;
) slash (/
), question mark (?
), colon (:
), at sign (@
), ampersand (&
), equals sign (=
), plus sign (+
), dollar sign ($
), and comma (,
)Many of the reserved characters are used as delimiters in the URL. You should escape characters beyond those listed here by using escape_url. Also, to use the reserved characters in the name-value pairs of the query string of a URL, those characters must be escaped separately. An escape_url cannot recognize the need to escape those characters because once inside a URL, those characters become indistinguishable from the actual delimiters. For example, to pass a name-value pair $logon=scott/tiger
into the query string of a URL, escape the $
and /
separately as %24logon=scott%2Ftiger
and use it in the URL.
Normally, you will escape the entire URL, which contains the reserved characters (delimiters) that should not be escaped. For example:
utl_url.escape('http://www.acme.com/a url with space.html')
Returns:
http://foo.com/a%20url%20with%20space.html
In other situations, you may want to send a query string with a value that contains reserved characters. In that case, escape only the value fully (with escape_reserved_chars
set to TRUE
) and then concatenate it with the rest of the URL. For example:
url := 'http://www.acme.com/search?check=' || utl_url.escape
('Is the use of the "$" sign okay?', TRUE);
This expression escapes the question mark (?
), dollar sign ($
), and space characters in 'Is the use of the "$" sign okay?'
but not the ?
after search
in the URL that denotes the use of a query string.
The Web server that you intend to fetch Web pages from may use a character set that is different from that of your database. In that case, specify the url_charset as the Web server character set so that the characters that need to be escaped are escaped in the target character set. For example, a user of an EBCDIC database who wants to access an ASCII Web server should escape the URL using US7ASCII
so that a space is escaped as %20
(hex code of a space in ASCII) instead of %40
(hex code of a space in EBCDIC).
This function does not validate a URL for the proper URL format.
This function unescapes the escape character sequences to its original form in a URL, to convert the %XX
escape character sequences to the original characters.
UTL_URL.UNESCAPE ( url IN VARCHAR2, url_charset IN VARCHAR2 DEFAULT utl_http.body_charset) RETURN VARCHAR2;
The Web server that you receive the URL from may use a character set that is different from that of your database. In that case, specify the url_charset as the Web server character set so that the characters that need to be unescaped are unescaped in the source character set. For example, a user of an EBCDIC database who receives a URL from an ASCII Web server should unescape the URL using US7ASCII
so that %20
is unescaped as a space (0x20 is the hex code of a space in ASCII) instead of a ?
(because 0x20 is not a valid character in EBCDIC).
This function does not validate a URL for the proper URL format.
|
Copyright © 2000, 2002 Oracle Corporation. All Rights Reserved. |
|