UTL_URL
包UTL_URL提供转换URL中的非法字符和保留字符的方法。
Function/Procedure | Return Type | Description |
---|---|---|
ESCAPE(url, escape reserved chars, url_charset) | VARCHAR2 | Use the ESCAPE function to escape any illegal and reserved characters in a URL. |
UNESCAPE(url, url charset) | VARCHAR2 | The UNESCAPE function to convert an URL to it's original form. |
如果对一个函数的调用包含了格式不正确的URL,那么包UTL_URL将返回异常BAD_URL。
ESCAPE
使用函数ESCAPE来转换URL中的非法字符和保留字符。语法如下:
ESCAPE(url VARCHAR2, escape_reserved_chars BOOLEAN, url_charset VARCHAR2)
保留字符将由一个百分号代替,且后面有两位给转换字符的ascii 值的十六进制代码。
参数
参数名称 | 描述 |
---|---|
url | url 用于指定UTL_URL 将要转换的统一资源定位符。 |
escape reserved chars | escape_reserved_chars 是一个BOOLEAN 值,用于命令函数ESCAPE 来转换保留字符和非法字符。
在 URL中,合法字符参见表 2。 在URL的某些部分中,一些字符为合法字符,但在其它部分中却为非法字符。可参考RFC 2396来回顾关于非法字符的综合性条例。一些字符示例在URL的任何部分中都是非法字符,请参见表 3。 函数 ESCAPE 将保留下列字符(请参见表 4),且如果把escape_reserved_chars 设为TRUE 的话,函数ESCAPE 将对保留下来的字符进行转换。 |
url_charset | url_charset 用于在转换指定字符前,来指定字符将要转换到的字符集。如果url_charset 为NULL ,那么字符将不会被转换。 url_charset 的缺省值为ISO-8859-1。 |
Uppercase A through Z | Lowercase a through z | 0 through 9 |
asterisk (*) | exclamation point (!) | hyphen (-) |
left parenthesis (() | period (.) | right parenthesis ()) |
single-quote (') | tilde (~) | underscore (_) |
Illegal Character | Escape Sequence |
---|---|
a blank space ( ) | %20 |
curly braces ({ or }) | %7b and %7d |
hash mark (#) | %23 |
Reserved Character | Escape Sequence |
---|---|
ampersand (&) | %5C |
at sign (@) | %25 |
colon (:) | %3a |
comma (,) | %2c |
dollar sign ($) | %24 |
equal sign (=) | %3d |
plus sign (+) | %2b |
question mark (?) | %3f |
semi-colon (;) | %3b |
slash (/) | %2f |
示例
下列匿名代码块使用了函数ESCAPE 来转换URL 中的空白处:
DECLARE
result varchar2(400);
BEGIN
result := UTL_URL.ESCAPE('http://www.example.com/Using the ESCAPE function.html');
DBMS_OUTPUT.PUT_LINE(result);
END;
转换后的 URL 为:
http://www.example.com/Using%20the%20ESCAPE%20function.html
当调用函数ESCAPE时,如果您给escape_reserved_chars参数包括一个TRUE值:
DECLARE
result varchar2(400);
BEGIN
result := UTL_URL.ESCAPE('http://www.example.com/Using the ESCAPE function.html', TRUE);
DBMS_OUTPUT.PUT_LINE(result);
END;
那么函数ESCAPE将转换URL中的保留字符和非法字符:
http%3A%2F%2Fwww.example.com%2FUsing%20the%20ESCAPE%20function.html
UNESCAPE
函数UNESCAPE用于删除由函数ESCAPE添加到URL中的转换字符,将URL转换为它的初始格式。语法如下:
UNESCAPE(url VARCHAR2, url_charset VARCHAR2)
参数
参数名称 | 描述 |
---|---|
url | url 用于指定UTL_URL 将要转回的统一资源定位符。 |
url_charset | 在转回一个字符之后,这个字符将假定为url_charset编码。且在返回之前,将从url_charset编码转换到数据库编码。如果url_charset为NULL,那么字符将不被转换。url charset的缺省值为ISO-8 85 9-1。 |
示例
下列匿名代码块使用了函数ESCAPE来转换URL中的空白处:
DECLARE
result varchar2(400);
BEGIN
result := UTL_URL.UNESCAPE('http://www.example.com/Using%20the%20UNESCAPE%20function.html');
DBMS_OUTPUT.PUT_LINE(result);
END;
转换后的URL为:
http://www.example.com/Using the UNESCAPE function.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论