ESCAPE¶
使用ESCAPE函数转换URL中的非法字符和保留字符,保留字符将由一个百分号代替,且后面有两位为转换字符的ascii值提供的十六进制代码
声明¶
UTL_URL.ESCAPE (
url IN TEXT,
escape_reserved IN BOOLEAN,
url_charset IN TEXT);
结构¶
| 参数 | 说明 |
|---|---|
| url | url用于指定ESCAPE函数将要转换的URL |
| escape_reserved | escape_reserved用于控制ESCAPE函数是否转换保留字符和非法字符。 |
| url_charset | url_charset 用于在转换指定字符前,指定字符将要转换的目标字符集, url_charset 输入为NULL或者'',按照默认编码(GBK)处理。 |
说明¶
escape_reserved设置为FALSE时,ESCAPE函数将只转换指定URL中的非法字符
escape_reserved设置为TRUE时,ESCAPE函数将转换指定URL中的非法字符和保留字符
在URL中可以使用的合法字符包括:大写字母A~Z、小写字母a~z、数字0~9、连字符(-)、
下划线(_)、句点(.)、感叹号(!)、波浪号(~)、星号(*)、重音(')、左括号(()、右括号())
非法字符¶
| 非法字符 | 转换顺序 |
|---|---|
| a blank space ( ) | %20 |
| curly braces ({}) | %7b%7d |
| hash mark (#) | %23 |
| backquote (`) | %60 |
保留字符¶
| 转换顺序 | 转换顺序 |
|---|---|
| ampersand (&) | %26 |
| at sign (@) | %40 |
| colon (:) | %3a |
| comma (,) | %2c |
| dollar sign ($) | %24 |
| equal sign (=) | %3d |
| plus sign (+) | %2b |
| question mark (?) | %3f |
| semi-colon (;) | %3b |
| slash (/) | %2f |
示例¶
--测试非法字符
select utl_url.escape(' ', 'false', 'gbk');
ESCAPE(varchar) |
---------------------
%20 |
总数目:1
select utl_url.escape('{or}', 'false', 'gbk');
ESCAPE(varchar) |
---------------------
%7Bor%7D |
总数目:1
--测试保留字符
select utl_url.escape('&', 'true', 'gbk');
ESCAPE(varchar) |
---------------------
%26 |
总数目:1
select utl_url.escape('/', 'true', 'gbk');
ESCAPE(varchar) |
---------------------
%2F |
总数目:1