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